diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-19 17:33:41 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-19 17:33:41 -0400 |
commit | 3e1f900bff40460d7bbab0ccd1a9efc3c70aee49 (patch) | |
tree | d0e2138ff61bdc9d1bd5b7ae5a1e75267d709afc /fs/nfs/dir.c | |
parent | 12795067cfa595434be0236b102a8eb20d578741 (diff) | |
parent | 0a87cf128f3d3bc6aa7b1040e73109c974ed875a (diff) |
Merge git://git.linux-nfs.org/pub/linux/nfs-2.6
* git://git.linux-nfs.org/pub/linux/nfs-2.6:
NFSv4: handle lack of clientaddr in option string
NFSv4: debug print ntohl(status) in nfs client callback xdr code
SUNRPC: Clean up the sillyrename code
NFS: Introduce struct nfs_removeargs+nfs_removeres
NFS: Use dentry->d_time to store the parent directory verifier.
SUNRPC: move bkl locking and xdr proc invocation into a common helper
NFSv4: Fix the nfsv4 readlink reply buffer alignment
NFSv4: Fix the readdir reply buffer alignment
NFSv4: More NFSv4 xdr cleanups
NFSv4: Try to recover from getfh failures in nfs4_xdr_dec_open
NFSv4: 'constify' lookup arguments.
NFSv4: Don't fail nfs4_xdr_dec_open if decode_restorefh() failed
NFSv4: Fix open state recovery
NFSD/SUNRPC: Fix the automatic selection of RPCSEC_GSS
Diffstat (limited to 'fs/nfs/dir.c')
-rw-r--r-- | fs/nfs/dir.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index 322141f4ab48..ea97408e423e 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c | |||
@@ -654,7 +654,7 @@ static int nfs_check_verifier(struct inode *dir, struct dentry *dentry) | |||
654 | 654 | ||
655 | if (IS_ROOT(dentry)) | 655 | if (IS_ROOT(dentry)) |
656 | return 1; | 656 | return 1; |
657 | verf = (unsigned long)dentry->d_fsdata; | 657 | verf = dentry->d_time; |
658 | if (nfs_caches_unstable(dir) | 658 | if (nfs_caches_unstable(dir) |
659 | || verf != NFS_I(dir)->cache_change_attribute) | 659 | || verf != NFS_I(dir)->cache_change_attribute) |
660 | return 0; | 660 | return 0; |
@@ -663,7 +663,7 @@ static int nfs_check_verifier(struct inode *dir, struct dentry *dentry) | |||
663 | 663 | ||
664 | static inline void nfs_set_verifier(struct dentry * dentry, unsigned long verf) | 664 | static inline void nfs_set_verifier(struct dentry * dentry, unsigned long verf) |
665 | { | 665 | { |
666 | dentry->d_fsdata = (void *)verf; | 666 | dentry->d_time = verf; |
667 | } | 667 | } |
668 | 668 | ||
669 | static void nfs_refresh_verifier(struct dentry * dentry, unsigned long verf) | 669 | static void nfs_refresh_verifier(struct dentry * dentry, unsigned long verf) |
@@ -869,7 +869,7 @@ static void nfs_dentry_iput(struct dentry *dentry, struct inode *inode) | |||
869 | if (dentry->d_flags & DCACHE_NFSFS_RENAMED) { | 869 | if (dentry->d_flags & DCACHE_NFSFS_RENAMED) { |
870 | lock_kernel(); | 870 | lock_kernel(); |
871 | drop_nlink(inode); | 871 | drop_nlink(inode); |
872 | nfs_complete_unlink(dentry); | 872 | nfs_complete_unlink(dentry, inode); |
873 | unlock_kernel(); | 873 | unlock_kernel(); |
874 | } | 874 | } |
875 | /* When creating a negative dentry, we want to renew d_time */ | 875 | /* When creating a negative dentry, we want to renew d_time */ |
@@ -1411,7 +1411,7 @@ static int nfs_sillyrename(struct inode *dir, struct dentry *dentry) | |||
1411 | nfs_renew_times(dentry); | 1411 | nfs_renew_times(dentry); |
1412 | nfs_set_verifier(dentry, nfs_save_change_attribute(dir)); | 1412 | nfs_set_verifier(dentry, nfs_save_change_attribute(dir)); |
1413 | d_move(dentry, sdentry); | 1413 | d_move(dentry, sdentry); |
1414 | error = nfs_async_unlink(dentry); | 1414 | error = nfs_async_unlink(dir, dentry); |
1415 | /* If we return 0 we don't unlink */ | 1415 | /* If we return 0 we don't unlink */ |
1416 | } | 1416 | } |
1417 | dput(sdentry); | 1417 | dput(sdentry); |