From: "J. Bruce Fields" <bfields@fieldses.org>
To: Kinglong Mee <kinglongmee@gmail.com>
Cc: linux-nfs@vger.kernel.org, Christoph Hellwig <hch@infradead.org>,
Steve Dickson <SteveD@redhat.com>
Subject: Re: [PATCH] NFSD: only support readonly export for !fsync and readonly filesystem
Date: Wed, 4 Jan 2017 12:29:06 -0500 [thread overview]
Message-ID: <20170104172906.GC17649@fieldses.org> (raw)
In-Reply-To: <960d206f-3cb5-b60e-5245-d7282dabf664@gmail.com>
On Sat, Dec 31, 2016 at 09:18:08PM +0800, Kinglong Mee wrote:
> Commit fae5096ad217
> "nfsd: assume writeable exportabled filesystems have f_sync"
> have remove the checking of f_sync.
>
> Christoph Hellwig suggests,
> "Warn and refuse the writable export."
>
> I think just covert to a readonly export for !fsync filesystem,
> also, for a readonly filesystem is reasonable.
Hmmm. It's not something we've done before. Off hand, I can't see why
it would cause a problem, but I'm not convinced yet.
Could you add to the changelog a description of the use case you gave
Christoph in your defense of this idea?
Also:
> Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
> ---
> fs/nfsd/export.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/fs/nfsd/export.c b/fs/nfsd/export.c
> index 43e109c..3ec3b6b 100644
> --- a/fs/nfsd/export.c
> +++ b/fs/nfsd/export.c
> @@ -358,6 +358,18 @@ static int check_export(struct inode *inode, int *flags, unsigned char *uuid)
> if (*flags & NFSEXP_V4ROOT)
> *flags |= NFSEXP_READONLY;
>
> + /*
> + * Convert to a readonly export for that,
> + * 1. not supported fsync filesystem,
> + * 2. readonly filesystem.
> + */
> + if ((!inode->i_fop->fsync || IS_RDONLY(inode))
> + && !(*flags & NFSEXP_READONLY)) {
> + dprintk("exp_export: Only support readonly export "
> + "for fsync unsupported or readonly filesystem.\n");
Something like this might be more helpful:
"Filesystem %s: exporting read-only\n", IS_RDONLY(inode) ?
"is read-only" : "has no fsync method"
Also if we passed the dentry to check_export, could we do something
like:
"%s %s: exporting read-only\n", d_path(dentry,...), IS_RDONLY...
here and in the other warnings?
--b.
> + *flags |= NFSEXP_READONLY;
> + }
> +
> /* There are two requirements on a filesystem to be exportable.
> * 1: We must be able to identify the filesystem from a number.
> * either a device number (so FS_REQUIRES_DEV needed)
> --
> 2.9.3
next prev parent reply other threads:[~2017-01-04 17:29 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-31 13:18 [PATCH] NFSD: only support readonly export for !fsync and readonly filesystem Kinglong Mee
2017-01-04 17:29 ` J. Bruce Fields [this message]
2017-01-05 14:20 ` Kinglong Mee
2017-01-05 14:46 ` [PATCH v2] NFSD: Only " Kinglong Mee
2017-01-08 10:07 ` [PATCH] NFSD: only " Christoph Hellwig
2017-01-08 12:43 ` Kinglong Mee
2017-01-12 21:18 ` J. Bruce Fields
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170104172906.GC17649@fieldses.org \
--to=bfields@fieldses.org \
--cc=SteveD@redhat.com \
--cc=hch@infradead.org \
--cc=kinglongmee@gmail.com \
--cc=linux-nfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.