NFS: Add mount options supporting eager writes
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
This commit is contained in:
parent
ed7bcdb374
commit
a0492339fc
|
@ -82,6 +82,7 @@ enum nfs_param {
|
||||||
Opt_v,
|
Opt_v,
|
||||||
Opt_vers,
|
Opt_vers,
|
||||||
Opt_wsize,
|
Opt_wsize,
|
||||||
|
Opt_write,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
|
@ -113,6 +114,19 @@ static const struct constant_table nfs_param_enums_lookupcache[] = {
|
||||||
{}
|
{}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
Opt_write_lazy,
|
||||||
|
Opt_write_eager,
|
||||||
|
Opt_write_wait,
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct constant_table nfs_param_enums_write[] = {
|
||||||
|
{ "lazy", Opt_write_lazy },
|
||||||
|
{ "eager", Opt_write_eager },
|
||||||
|
{ "wait", Opt_write_wait },
|
||||||
|
{}
|
||||||
|
};
|
||||||
|
|
||||||
static const struct fs_parameter_spec nfs_fs_parameters[] = {
|
static const struct fs_parameter_spec nfs_fs_parameters[] = {
|
||||||
fsparam_flag_no("ac", Opt_ac),
|
fsparam_flag_no("ac", Opt_ac),
|
||||||
fsparam_u32 ("acdirmax", Opt_acdirmax),
|
fsparam_u32 ("acdirmax", Opt_acdirmax),
|
||||||
|
@ -171,6 +185,7 @@ static const struct fs_parameter_spec nfs_fs_parameters[] = {
|
||||||
fsparam_flag ("v4.1", Opt_v),
|
fsparam_flag ("v4.1", Opt_v),
|
||||||
fsparam_flag ("v4.2", Opt_v),
|
fsparam_flag ("v4.2", Opt_v),
|
||||||
fsparam_string("vers", Opt_vers),
|
fsparam_string("vers", Opt_vers),
|
||||||
|
fsparam_enum ("write", Opt_write, nfs_param_enums_write),
|
||||||
fsparam_u32 ("wsize", Opt_wsize),
|
fsparam_u32 ("wsize", Opt_wsize),
|
||||||
{}
|
{}
|
||||||
};
|
};
|
||||||
|
@ -770,6 +785,24 @@ static int nfs_fs_context_parse_param(struct fs_context *fc,
|
||||||
goto out_invalid_value;
|
goto out_invalid_value;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case Opt_write:
|
||||||
|
switch (result.uint_32) {
|
||||||
|
case Opt_write_lazy:
|
||||||
|
ctx->flags &=
|
||||||
|
~(NFS_MOUNT_WRITE_EAGER | NFS_MOUNT_WRITE_WAIT);
|
||||||
|
break;
|
||||||
|
case Opt_write_eager:
|
||||||
|
ctx->flags |= NFS_MOUNT_WRITE_EAGER;
|
||||||
|
ctx->flags &= ~NFS_MOUNT_WRITE_WAIT;
|
||||||
|
break;
|
||||||
|
case Opt_write_wait:
|
||||||
|
ctx->flags |=
|
||||||
|
NFS_MOUNT_WRITE_EAGER | NFS_MOUNT_WRITE_WAIT;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
goto out_invalid_value;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Special options
|
* Special options
|
||||||
|
|
Loading…
Reference in New Issue