|
@@ -204,9 +204,9 @@ static int nfs_statfs(struct dentry *dentry, struct kstatfs *buf)
|
|
lock_kernel();
|
|
lock_kernel();
|
|
|
|
|
|
error = server->nfs_client->rpc_ops->statfs(server, fh, &res);
|
|
error = server->nfs_client->rpc_ops->statfs(server, fh, &res);
|
|
- buf->f_type = NFS_SUPER_MAGIC;
|
|
|
|
if (error < 0)
|
|
if (error < 0)
|
|
goto out_err;
|
|
goto out_err;
|
|
|
|
+ buf->f_type = NFS_SUPER_MAGIC;
|
|
|
|
|
|
/*
|
|
/*
|
|
* Current versions of glibc do not correctly handle the
|
|
* Current versions of glibc do not correctly handle the
|
|
@@ -233,15 +233,14 @@ static int nfs_statfs(struct dentry *dentry, struct kstatfs *buf)
|
|
buf->f_ffree = res.afiles;
|
|
buf->f_ffree = res.afiles;
|
|
|
|
|
|
buf->f_namelen = server->namelen;
|
|
buf->f_namelen = server->namelen;
|
|
- out:
|
|
|
|
|
|
+
|
|
unlock_kernel();
|
|
unlock_kernel();
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
out_err:
|
|
out_err:
|
|
dprintk("%s: statfs error = %d\n", __FUNCTION__, -error);
|
|
dprintk("%s: statfs error = %d\n", __FUNCTION__, -error);
|
|
- buf->f_bsize = buf->f_blocks = buf->f_bfree = buf->f_bavail = -1;
|
|
|
|
- goto out;
|
|
|
|
-
|
|
|
|
|
|
+ unlock_kernel();
|
|
|
|
+ return error;
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
/*
|