]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
STABLE14-linux-hash-inodes-for-mmap-20071127
authorMarc Dionne <marc.dionne@technoconseil.com>
Tue, 27 Nov 2007 19:32:43 +0000 (19:32 +0000)
committerDerrick Brashear <shadow@dementia.org>
Tue, 27 Nov 2007 19:32:43 +0000 (19:32 +0000)
FIXES 78544

inodes are only added to the superblock dirty list if hashed.

do so.

(cherry picked from commit 89261e8b84697f3b5158e197ca9946c6fe9f45ed)

src/afs/LINUX/osi_vnodeops.c

index 16dd4b15e8c10fbceddc982ce8fa5802e4edca58..dfc8b581df24c2e8827e9fa76927dec98432cf99 100644 (file)
@@ -952,6 +952,7 @@ afs_linux_create(struct inode *dip, struct dentry *dp, int mode)
 
        afs_getattr(vcp, &vattr, credp);
        afs_fill_inode(ip, &vattr);
+       insert_inode_hash(ip);
        dp->d_op = &afs_dentry_operations;
        dp->d_time = hgetlo(VTOAFS(dip)->m.DataVersion);
        d_instantiate(dp, ip);
@@ -997,6 +998,8 @@ afs_linux_lookup(struct inode *dip, struct dentry *dp)
        ip = AFSTOV(vcp);
        afs_getattr(vcp, &vattr, credp);
        afs_fill_inode(ip, &vattr);
+       if (hlist_unhashed(&ip->i_hash))
+           insert_inode_hash(ip);
     }
     dp->d_op = &afs_dentry_operations;
     dp->d_time = hgetlo(VTOAFS(dip)->m.DataVersion);
@@ -1844,5 +1847,4 @@ afs_fill_inode(struct inode *ip, struct vattr *vattr)
 #endif
     }
 
-    /* insert_inode_hash(ip);  -- this would make iget() work (if we used it) */
 }