Re: [PATCH] add force_layoutcommit param

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2025-09-02 at 18:19 +0000, Haihua Yang wrote:
> [You don't often get email from yanghh@xxxxxxxxx. Learn why this is
> important at https://aka.ms/LearnAboutSenderIdentification ;]
> 
> ---
>  fs/nfs/filelayout/filelayout.c | 12 +++++++++---
>  1 file changed, 9 insertions(+), 3 deletions(-)
> 
> diff --git a/fs/nfs/filelayout/filelayout.c
> b/fs/nfs/filelayout/filelayout.c
> index d39a1f58e18d..1cb8f413a665 100644
> --- a/fs/nfs/filelayout/filelayout.c
> +++ b/fs/nfs/filelayout/filelayout.c
> @@ -48,6 +48,8 @@ MODULE_LICENSE("GPL");
>  MODULE_AUTHOR("Dean Hildebrand <dhildebz@xxxxxxxxx>");
>  MODULE_DESCRIPTION("The NFSv4 file layout driver");
> 
> +static bool force_layoutcommit = false;
> +
>  #define FILELAYOUT_POLL_RETRY_MAX     (15*HZ)
>  static const struct pnfs_commit_ops filelayout_commit_ops;
> 
> @@ -233,10 +235,11 @@ filelayout_set_layoutcommit(struct
> nfs_pgio_header *hdr)
>  {
>         loff_t end_offs = 0;
> 
> -       if (FILELAYOUT_LSEG(hdr->lseg)->commit_through_mds ||
> -           hdr->res.verf->committed == NFS_FILE_SYNC)
> +       if (!force_layoutcommit && (FILELAYOUT_LSEG(hdr->lseg)-
> >commit_through_mds ||
> +           hdr->res.verf->committed == NFS_FILE_SYNC))
>                 return;
> -       if (hdr->res.verf->committed == NFS_DATA_SYNC)
> +       if (hdr->res.verf->committed == NFS_DATA_SYNC ||
> +           (force_layoutcommit && hdr->res.verf->committed ==
> NFS_FILE_SYNC))
>                 end_offs = hdr->mds_offset + (loff_t)hdr->res.count;
> 
>         /* Note: if the write is unstable, don't set end_offs until
> commit */
> @@ -1149,5 +1152,8 @@ static void __exit nfs4filelayout_exit(void)
> 
>  MODULE_ALIAS("nfs-layouttype4-1");
> 
> +module_param(force_layoutcommit, bool, 0644);
> +MODULE_PARM_DESC(force_layoutcommit, "Force LAYOUTCOMMIT after data
> was written (default: false)");
> +
>  module_init(nfs4filelayout_init);
>  module_exit(nfs4filelayout_exit);
> --
> 2.51.0.87.g1fa68948c3.dirty
> 

NACK.

Firstly, there is no documentation that tells either me or any
pnfs/files user when it would be desirable to set this flag. There
isn't even a reference to what problem in RFC8881 it addresses.

Secondly, it breaks the NFS_FILE_SYNC case.

-- 
Trond Myklebust
Linux NFS client maintainer, Hammerspace
trondmy@xxxxxxxxxx, trond.myklebust@xxxxxxxxxxxxxxx




[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux