]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/hfs/hfs_vnodeops.c
xnu-201.5.tar.gz
[apple/xnu.git] / bsd / hfs / hfs_vnodeops.c
index 7e910c4ffb7810062580b95daa1e86bd0f04dc40..3d1d803e5070e6d4d6b526f7281de9f56a0b6edf 100644 (file)
@@ -1071,7 +1071,9 @@ struct proc *a_p;
 
     if (((alist->volattr == 0) && ((alist->commonattr & HFS_ATTR_CMN_LOOKUPMASK) != 0)) ||
         ((alist->dirattr & HFS_ATTR_DIR_LOOKUPMASK) != 0) ||
-        ((alist->fileattr & HFS_ATTR_FILE_LOOKUPMASK) != 0)) {
+        ((alist->fileattr & HFS_ATTR_FILE_LOOKUPMASK) != 0) ||
+        ((alist->commonattr & (ATTR_CMN_OBJID | ATTR_CMN_OBJPERMANENTID))
+          && (hp->h_meta->h_metaflags & IN_DATANODE))) {
 
         /* lock catalog b-tree */
         error = hfs_metafilelocking(VTOHFS(vp), kHFSCatalogFileID, LK_SHARED, ap->a_p);