mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-16 09:34:22 +08:00
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_vers,
|
||||
Opt_wsize,
|
||||
Opt_write,
|
||||
};
|
||||
|
||||
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[] = {
|
||||
fsparam_flag_no("ac", Opt_ac),
|
||||
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.2", Opt_v),
|
||||
fsparam_string("vers", Opt_vers),
|
||||
fsparam_enum ("write", Opt_write, nfs_param_enums_write),
|
||||
fsparam_u32 ("wsize", Opt_wsize),
|
||||
{}
|
||||
};
|
||||
@ -770,6 +785,24 @@ static int nfs_fs_context_parse_param(struct fs_context *fc,
|
||||
goto out_invalid_value;
|
||||
}
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user