From: NIIBE Y. <gn...@m1...> - 2002-04-09 01:05:51
|
I've tested different change in 2.5, and that's one seems be better. So, backported to 2.4. 2002-04-09 NIIBE Yutaka <gn...@m1...> * fs/nfs/inode.c (nfs_find_actor): Don't touch i_mode, but return 0 when i_mode mismatch. Index: fs/nfs/inode.c =================================================================== RCS file: /cvsroot/linuxsh/linux/fs/nfs/inode.c,v retrieving revision 1.1.2.2 diff -u -3 -p -r1.1.2.2 inode.c --- fs/nfs/inode.c 20 Mar 2002 00:11:31 -0000 1.1.2.2 +++ fs/nfs/inode.c 9 Apr 2002 01:03:18 -0000 @@ -677,9 +677,11 @@ nfs_find_actor(struct inode *inode, unsi return 0; if (memcmp(&inode->u.nfs_i.fh, fh, sizeof(inode->u.nfs_i.fh)) != 0) return 0; + if ((inode->i_mode & S_IFMT) != (fattr->mode & S_IFMT)) + return 0; /* Force an attribute cache update if inode->i_count == 0 */ if (!atomic_read(&inode->i_count)) - inode->i_mode = 0; + NFS_CACHEINV(inode); return 1; } |