diff options
Diffstat (limited to 'fs/nfs')
| -rw-r--r-- | fs/nfs/dir.c | 15 | ||||
| -rw-r--r-- | fs/nfs/nfs42xattr.c | 2 | ||||
| -rw-r--r-- | fs/nfs/nfs42xdr.c | 4 | ||||
| -rw-r--r-- | fs/nfs/nfsroot.c | 6 | 
4 files changed, 15 insertions, 12 deletions
| diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index cb52db9a0cfb..4e011adaf967 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c @@ -955,7 +955,6 @@ out:  static loff_t nfs_llseek_dir(struct file *filp, loff_t offset, int whence)  { -	struct inode *inode = file_inode(filp);  	struct nfs_open_dir_context *dir_ctx = filp->private_data;  	dfprintk(FILE, "NFS: llseek dir(%pD2, %lld, %d)\n", @@ -967,15 +966,15 @@ static loff_t nfs_llseek_dir(struct file *filp, loff_t offset, int whence)  	case SEEK_SET:  		if (offset < 0)  			return -EINVAL; -		inode_lock(inode); +		spin_lock(&filp->f_lock);  		break;  	case SEEK_CUR:  		if (offset == 0)  			return filp->f_pos; -		inode_lock(inode); +		spin_lock(&filp->f_lock);  		offset += filp->f_pos;  		if (offset < 0) { -			inode_unlock(inode); +			spin_unlock(&filp->f_lock);  			return -EINVAL;  		}  	} @@ -987,7 +986,7 @@ static loff_t nfs_llseek_dir(struct file *filp, loff_t offset, int whence)  			dir_ctx->dir_cookie = 0;  		dir_ctx->duped = 0;  	} -	inode_unlock(inode); +	spin_unlock(&filp->f_lock);  	return offset;  } @@ -998,13 +997,9 @@ static loff_t nfs_llseek_dir(struct file *filp, loff_t offset, int whence)  static int nfs_fsync_dir(struct file *filp, loff_t start, loff_t end,  			 int datasync)  { -	struct inode *inode = file_inode(filp); -  	dfprintk(FILE, "NFS: fsync dir(%pD2) datasync %d\n", filp, datasync); -	inode_lock(inode); -	nfs_inc_stats(inode, NFSIOS_VFSFSYNC); -	inode_unlock(inode); +	nfs_inc_stats(file_inode(filp), NFSIOS_VFSFSYNC);  	return 0;  } diff --git a/fs/nfs/nfs42xattr.c b/fs/nfs/nfs42xattr.c index b51424ff8159..6c2ce799150f 100644 --- a/fs/nfs/nfs42xattr.c +++ b/fs/nfs/nfs42xattr.c @@ -1047,8 +1047,10 @@ out4:  void nfs4_xattr_cache_exit(void)  { +	unregister_shrinker(&nfs4_xattr_large_entry_shrinker);  	unregister_shrinker(&nfs4_xattr_entry_shrinker);  	unregister_shrinker(&nfs4_xattr_cache_shrinker); +	list_lru_destroy(&nfs4_xattr_large_entry_lru);  	list_lru_destroy(&nfs4_xattr_entry_lru);  	list_lru_destroy(&nfs4_xattr_cache_lru);  	kmem_cache_destroy(nfs4_xattr_cache_cachep); diff --git a/fs/nfs/nfs42xdr.c b/fs/nfs/nfs42xdr.c index 0dc31ad2362e..6e060a88f98c 100644 --- a/fs/nfs/nfs42xdr.c +++ b/fs/nfs/nfs42xdr.c @@ -196,7 +196,7 @@  				 1 + nfs4_xattr_name_maxsz + 1)  #define decode_setxattr_maxsz   (op_decode_hdr_maxsz + decode_change_info_maxsz)  #define encode_listxattrs_maxsz  (op_encode_hdr_maxsz + 2 + 1) -#define decode_listxattrs_maxsz  (op_decode_hdr_maxsz + 2 + 1 + 1) +#define decode_listxattrs_maxsz  (op_decode_hdr_maxsz + 2 + 1 + 1 + 1)  #define encode_removexattr_maxsz (op_encode_hdr_maxsz + 1 + \  				  nfs4_xattr_name_maxsz)  #define decode_removexattr_maxsz (op_decode_hdr_maxsz + \ @@ -531,7 +531,7 @@ static void encode_listxattrs(struct xdr_stream *xdr,  {  	__be32 *p; -	encode_op_hdr(xdr, OP_LISTXATTRS, decode_listxattrs_maxsz + 1, hdr); +	encode_op_hdr(xdr, OP_LISTXATTRS, decode_listxattrs_maxsz, hdr);  	p = reserve_space(xdr, 12);  	if (unlikely(!p)) diff --git a/fs/nfs/nfsroot.c b/fs/nfs/nfsroot.c index 8d3278805602..fa148308822c 100644 --- a/fs/nfs/nfsroot.c +++ b/fs/nfs/nfsroot.c @@ -88,7 +88,13 @@  #define NFS_ROOT		"/tftpboot/%s"  /* Default NFSROOT mount options. */ +#if defined(CONFIG_NFS_V2)  #define NFS_DEF_OPTIONS		"vers=2,tcp,rsize=4096,wsize=4096" +#elif defined(CONFIG_NFS_V3) +#define NFS_DEF_OPTIONS		"vers=3,tcp,rsize=4096,wsize=4096" +#else +#define NFS_DEF_OPTIONS		"vers=4,tcp,rsize=4096,wsize=4096" +#endif  /* Parameters passed from the kernel command line */  static char nfs_root_parms[NFS_MAXPATHLEN + 1] __initdata = ""; | 
