Merge branch 'hotfixes' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6

* 'hotfixes' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:
  NFS: Ensure we call nfs_sb_deactive() after releasing the directory inode
  nfs_remount oops when rebooting + possible fix
This commit is contained in:
Linus Torvalds 2008-07-27 16:47:55 -07:00
commit c9272c4f9f
2 changed files with 5 additions and 4 deletions

View file

@ -1718,9 +1718,9 @@ nfs_remount(struct super_block *sb, int *flags, char *raw_data)
* ones were explicitly specified. Fall back to legacy behavior and * ones were explicitly specified. Fall back to legacy behavior and
* just return success. * just return success.
*/ */
if ((nfsvers == 4 && options4->version == 1) || if ((nfsvers == 4 && (!options4 || options4->version == 1)) ||
(nfsvers <= 3 && options->version >= 1 && (nfsvers <= 3 && (!options || (options->version >= 1 &&
options->version <= 6)) options->version <= 6))))
return 0; return 0;
data = kzalloc(sizeof(*data), GFP_KERNEL); data = kzalloc(sizeof(*data), GFP_KERNEL);

View file

@ -95,10 +95,11 @@ static void nfs_async_unlink_done(struct rpc_task *task, void *calldata)
static void nfs_async_unlink_release(void *calldata) static void nfs_async_unlink_release(void *calldata)
{ {
struct nfs_unlinkdata *data = calldata; struct nfs_unlinkdata *data = calldata;
struct super_block *sb = data->dir->i_sb;
nfs_dec_sillycount(data->dir); nfs_dec_sillycount(data->dir);
nfs_sb_deactive(NFS_SERVER(data->dir));
nfs_free_unlinkdata(data); nfs_free_unlinkdata(data);
nfs_sb_deactive(NFS_SB(sb));
} }
static const struct rpc_call_ops nfs_unlink_ops = { static const struct rpc_call_ops nfs_unlink_ops = {