• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.5.8/xnu-1228.15.4/bsd/hfs/

Lines Matching refs:hfsmp

61 static int  setfirstlink(struct hfsmount * hfsmp, cnid_t fileid, cnid_t firstlink);
62 static int getfirstlink(struct hfsmount * hfsmp, cnid_t fileid, cnid_t *firstlink);
79 createindirectlink(struct hfsmount *hfsmp, u_int32_t linknum, struct cat_desc *descp,
95 attr.ca_itime = hfsmp->hfs_itime;
118 return cat_createlink(hfsmp, descp, &attr, nextcnid, linkcnid);
129 hfs_makelink(struct hfsmount *hfsmp, struct cnode *cp, struct cnode *dcp,
154 if (dcp->c_fileid == hfsmp->hfs_private_desc[FILE_HARDLINKS].cd_cnid ||
155 dcp->c_fileid == hfsmp->hfs_private_desc[DIR_HARDLINKS].cd_cnid) {
161 if ((retval = cat_preflight(hfsmp, (2 * CAT_CREATE)+ CAT_RENAME, &cookie, p))) {
170 lockflags = hfs_systemfile_lock(hfsmp, lockflags, HFS_EXCLUSIVE_LOCK);
182 to_desc.cd_parentcnid = hfsmp->hfs_private_desc[type].cd_cnid;
206 retval = cat_rename(hfsmp, &cp->c_desc, &hfsmp->hfs_private_desc[type],
227 retval = createindirectlink(hfsmp, indnodeno, &link_desc, 0, &linkcnid, true);
235 err = cat_rename(hfsmp, &to_desc, &dcp->c_desc, &cp->c_desc, NULL);
244 if (setfirstlink(hfsmp, cp->c_fileid, linkcnid) == 0)
266 retval = getfirstlink(hfsmp, cp->c_fileid, &orig_firstlink);
271 retval = createindirectlink(hfsmp, indnodeno, &link_desc,
278 (void) cat_delete(hfsmp, &cp->c_desc, &cp->c_attr);
284 err = cat_rename(hfsmp, &to_desc, &dcp->c_desc, &cp->c_desc, NULL);
294 (void) cat_updatelink(hfsmp, orig_firstlink, linkcnid, HFS_IGNORABLE_LINK);
298 if (setfirstlink(hfsmp, cp->c_fileid, linkcnid) == 0)
316 hfsmp->hfs_private_attr[type].ca_entries++;
322 INC_FOLDERCOUNT(hfsmp, hfsmp->hfs_private_attr[type]);
324 retval = cat_update(hfsmp, &hfsmp->hfs_private_desc[type],
325 &hfsmp->hfs_private_attr[type], NULL, NULL);
348 hfs_systemfile_unlock(hfsmp, lockflags);
350 cat_postflight(hfsmp, &cookie, p);
353 hfs_volupdate(hfsmp, VOL_MKFILE, 0);
371 struct hfsmount *hfsmp;
385 hfsmp = VTOHFS(vp);
389 if (hfsmp->hfs_flags & HFS_STANDARD) {
398 if (hfsmp->hfs_private_desc[DIR_HARDLINKS].cd_cnid == 0) {
406 if (hfsmp->jnl == NULL) {
410 if ((error = hfs_vget(hfsmp, hfs_currentparent(VTOC(vp)), &fdvp, 1))) {
415 if (hfsmp->hfs_private_desc[FILE_HARDLINKS].cd_cnid == 0) {
419 if (hfs_freeblks(hfsmp, 0) == 0) {
475 if (hfs_start_transaction(hfsmp) != 0) {
489 lockflags = hfs_systemfile_lock(hfsmp, SFL_CATALOG, HFS_SHARED_LOCK);
492 if (cat_lookup(hfsmp, &todesc, 0, NULL, NULL, NULL, NULL) == 0) {
500 if ((cat_idlookup(hfsmp, cp->c_fileid, 0, NULL, &cattr, NULL) != 0) ||
509 if ((cat_lookup(hfsmp, &cp->c_desc, 0, NULL, NULL, NULL, &fileid) != 0) ||
531 cat_check_link_ancestry(hfsmp, tdcp->c_fileid, cp->c_fileid)) {
536 hfs_systemfile_unlock(hfsmp, lockflags);
541 error = hfs_makelink(hfsmp, cp, tdcp, cnp);
544 hfs_volupdate(hfsmp, VOL_UPDATE, 0);
555 INC_FOLDERCOUNT(hfsmp, tdcp->c_attr);
559 error = cat_set_childlinkbit(hfsmp, tdcp->c_parentcnid);
588 error = cat_set_childlinkbit(hfsmp, fdcp->c_parentcnid);
594 hfs_volupdate(hfsmp, VOL_MKFILE,
608 hfs_systemfile_unlock(hfsmp, lockflags);
611 hfs_end_transaction(hfsmp);
636 hfs_unlink(struct hfsmount *hfsmp, struct vnode *dvp, struct vnode *vp, struct componentname *cnp, int skip_reserve)
650 if (hfsmp->hfs_flags & HFS_STANDARD) {
661 if ((error = hfs_start_transaction(hfsmp)) != 0) {
688 lockflags = hfs_systemfile_lock(hfsmp, lockflags, HFS_EXCLUSIVE_LOCK);
690 if ((error = cat_lookuplink(hfsmp, &cndesc, &cndesc.cd_cnid, &prevlinkid, &nextlinkid))) {
695 if (!skip_reserve && (error = cat_preflight(hfsmp, 2 * CAT_DELETE, NULL, 0))) {
706 if ((error = cat_deletelink(hfsmp, &cndesc))) {
715 DEC_FOLDERCOUNT(hfsmp, dcp->c_attr);
721 (void ) cat_update(hfsmp, &dcp->c_desc, &dcp->c_attr, NULL, NULL);
749 from_desc.cd_parentcnid = hfsmp->hfs_private_desc[DIR_HARDLINKS].cd_cnid;
755 from_desc.cd_parentcnid = hfsmp->hfs_private_desc[FILE_HARDLINKS].cd_cnid;
766 to_desc.cd_parentcnid = hfsmp->hfs_private_desc[FILE_HARDLINKS].cd_cnid;
769 error = cat_rename(hfsmp, &from_desc, &hfsmp->hfs_private_desc[FILE_HARDLINKS],
776 hfsmp->hfs_private_attr[DIR_HARDLINKS].ca_entries--;
777 DEC_FOLDERCOUNT(hfsmp, hfsmp->hfs_private_attr[DIR_HARDLINKS]);
779 hfsmp->hfs_private_attr[FILE_HARDLINKS].ca_entries++;
780 INC_FOLDERCOUNT(hfsmp, hfsmp->hfs_private_attr[FILE_HARDLINKS]);
782 (void)cat_update(hfsmp, &hfsmp->hfs_private_desc[DIR_HARDLINKS],
783 &hfsmp->hfs_private_attr[DIR_HARDLINKS], NULL, NULL);
784 (void)cat_update(hfsmp, &hfsmp->hfs_private_desc[FILE_HARDLINKS],
785 &hfsmp->hfs_private_attr[FILE_HARDLINKS], NULL, NULL);
798 getfirstlink(hfsmp, cp->c_fileid, &firstlink) == 0 &&
800 if (setfirstlink(hfsmp, cp->c_fileid, nextlinkid) == 0)
807 (void) cat_updatelink(hfsmp, prevlinkid, HFS_IGNORABLE_LINK, nextlinkid);
811 (void) cat_updatelink(hfsmp, nextlinkid, prevlinkid, HFS_IGNORABLE_LINK);
817 (void) cat_update(hfsmp, &cp->c_desc, &cp->c_attr, NULL, NULL);
820 hfs_systemfile_unlock(hfsmp, lockflags);
824 hfs_volupdate(hfsmp, VOL_RMFILE, (dcp->c_cnid == kHFSRootFolderID));
827 hfs_volupdate(hfsmp, VOL_RMFILE, 0);
842 hfs_systemfile_unlock(hfsmp, lockflags);
845 hfs_end_transaction(hfsmp);
868 hfs_privatedir_init(struct hfsmount * hfsmp, enum privdirtype type)
880 if (hfsmp->hfs_flags & HFS_STANDARD) {
884 priv_descp = &hfsmp->hfs_private_desc[type];
885 priv_attrp = &hfsmp->hfs_private_attr[type];
897 lockflags = hfs_systemfile_lock(hfsmp, SFL_CATALOG, HFS_SHARED_LOCK);
898 error = cat_lookup(hfsmp, priv_descp, 0, NULL, priv_attrp, NULL, NULL);
899 hfs_systemfile_unlock(hfsmp, lockflags);
903 hfsmp->hfs_metadata_createdate = priv_attrp->ca_itime;
910 if (hfsmp->hfs_flags & HFS_READ_ONLY) {
915 if (hfs_vget(hfsmp, kRootDirID, &dvp, 0) != 0) {
929 priv_attrp->ca_itime = hfsmp->hfs_itime;
937 if (hfs_start_transaction(hfsmp) != 0) {
942 lockflags = hfs_systemfile_lock(hfsmp, SFL_CATALOG, HFS_EXCLUSIVE_LOCK);
945 if (cat_preflight(hfsmp, CAT_CREATE, NULL, 0) != 0) {
946 hfs_systemfile_unlock(hfsmp, lockflags);
951 error = cat_create(hfsmp, priv_descp, priv_attrp, NULL);
957 INC_FOLDERCOUNT(hfsmp, dcp->c_attr);
962 (void) cat_update(hfsmp, &dcp->c_desc, &dcp->c_attr, NULL, NULL);
965 hfs_systemfile_unlock(hfsmp, lockflags);
971 hfsmp->hfs_metadata_createdate = hfsmp->hfs_itime;
973 hfs_volupdate(hfsmp, VOL_MKDIR, 1);
976 hfs_end_transaction(hfsmp);
983 hfs_xattr_init(hfsmp);
993 hfs_lookuplink(struct hfsmount *hfsmp, cnid_t linkfileid, cnid_t *prevlinkid, cnid_t *nextlinkid)
1001 lockflags = hfs_systemfile_lock(hfsmp, SFL_CATALOG, HFS_SHARED_LOCK);
1003 error = cat_lookuplinkbyid(hfsmp, linkfileid, prevlinkid, nextlinkid);
1005 hfs_systemfile_unlock(hfsmp, lockflags);
1006 lockflags = hfs_systemfile_lock(hfsmp, SFL_ATTRIBUTE, HFS_SHARED_LOCK);
1008 error = getfirstlink(hfsmp, linkfileid, nextlinkid);
1010 hfs_systemfile_unlock(hfsmp, lockflags);
1167 setfirstlink(struct hfsmount * hfsmp, cnid_t fileid, cnid_t firstlink)
1177 if (hfsmp->hfs_attribute_cp == NULL) {
1209 btfile = hfsmp->hfs_attribute_cp->c_datafork;
1229 getfirstlink(struct hfsmount * hfsmp, cnid_t fileid, cnid_t *firstlink)
1239 if (hfsmp->hfs_attribute_cp == NULL) {
1256 btfile = hfsmp->hfs_attribute_cp->c_datafork;