From: NeilBrown <neilb@suse.com>
To: lustre-devel@lists.lustre.org
Subject: [lustre-devel] [PATCH 1/8] lustre: seq: make seq_proc_write_common() safer
Date: Fri, 26 Jul 2019 09:55:12 +1000 [thread overview]
Message-ID: <87h879mzz3.fsf@notabene.neil.brown.name> (raw)
In-Reply-To: <1564022647-17351-2-git-send-email-jsimmons@infradead.org>
On Wed, Jul 24 2019, James Simmons wrote:
> From: Andreas Dilger <adilger@whamcloud.com>
>
> Don't allow seq_proc_write_common() to specify arbitrary ranges,
> since this can permanently corrupt the sequence controller and/or
> sequnece server. That would allow duplicate FID allocation, or
> possibly prevent any new files to be created or servers to be added
> to the filesystem.
>
> Instead, limit the sequence range that can be written via /proc to
> a subset of the sequence range currently allocated to that node.
> Add the "clear" keyword to allow dropping the entire local sequence
> and force a new one to be fetched from the sequence server.
>
> WC-bug-id: https://jira.whamcloud.com/browse/LU-3642
> Lustre-commit: 05f69f5ee20eeffcc26f643333cedcfb53ba6669
> Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
> Reviewed-on: http://review.whamcloud.com/7123
> Reviewed-by: Jinshan Xiong <jinshan.xiong@gmail.com>
> Reviewed-by: Alex Zhuravlev <bzzz@whamcloud.com>
> Reviewed-by: James Simmons <uja.ornl@gmail.com>
> Reviewed-by: Oleg Drokin <green@whamclould.com>
> ---
> fs/lustre/fid/lproc_fid.c | 12 +++++++-----
> 1 file changed, 7 insertions(+), 5 deletions(-)
I already have this is my backport branch.
a8ab6db57383
NeilBrown
>
> diff --git a/fs/lustre/fid/lproc_fid.c b/fs/lustre/fid/lproc_fid.c
> index 94869d4..e2e47df 100644
> --- a/fs/lustre/fid/lproc_fid.c
> +++ b/fs/lustre/fid/lproc_fid.c
> @@ -52,14 +52,18 @@
> /* Format: [0x64BIT_INT - 0x64BIT_INT] + 32 bytes just in case */
> #define MAX_FID_RANGE_STRLEN (32 + 2 * 2 * sizeof(u64))
> /*
> - * Note: this function is only used for testing, it is no safe for production
> - * use.
> + * Reduce the SEQ range allocated to a node to a strict subset of the range
> + * currently-allocated SEQ range. If the specified range is "clear", then
> + * drop all allocated sequences and request a new one from the master.
> + *
> + * Note: this function should only be used for testing, it is not necessarily
> + * safe for production use.
> */
> static int
> ldebugfs_fid_write_common(const char __user *buffer, size_t count,
> struct lu_seq_range *range)
> {
> - struct lu_seq_range tmp;
> + struct lu_seq_range tmp = { 0, };
> int rc;
> char kernbuf[MAX_FID_RANGE_STRLEN];
>
> @@ -82,8 +86,6 @@
> rc = sscanf(kernbuf, "[%llx - %llx]\n",
> (unsigned long long *)&tmp.lsr_start,
> (unsigned long long *)&tmp.lsr_end);
> - if (rc != 2)
> - return -EINVAL;
> if (!lu_seq_range_is_sane(&tmp) || lu_seq_range_is_zero(&tmp) ||
> tmp.lsr_start < range->lsr_start || tmp.lsr_end > range->lsr_end)
> return -EINVAL;
> --
> 1.8.3.1
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 832 bytes
Desc: not available
URL: <http://lists.lustre.org/pipermail/lustre-devel-lustre.org/attachments/20190726/bc2590d3/attachment.sig>
next prev parent reply other threads:[~2019-07-25 23:55 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-25 2:43 [lustre-devel] [PATCH 0/8] lustre: some old patches from whamcloud tree James Simmons
2019-07-25 2:44 ` [lustre-devel] [PATCH 1/8] lustre: seq: make seq_proc_write_common() safer James Simmons
2019-07-25 23:55 ` NeilBrown [this message]
2019-07-26 3:31 ` James Simmons
2019-07-25 2:44 ` [lustre-devel] [PATCH 2/8] lustre: ptlrpc: Fix an rq_no_reply assertion failure James Simmons
2019-08-14 16:58 ` Andreas Dilger
2019-07-25 2:44 ` [lustre-devel] [PATCH 3/8] lustre: fld: resend seq lookup RPC if it is on LWP James Simmons
2019-08-14 16:58 ` Andreas Dilger
2019-07-25 2:44 ` [lustre-devel] [PATCH 4/8] lustre: fld: retry fld rpc even for ESHUTDOWN James Simmons
2019-08-14 16:58 ` Andreas Dilger
2019-08-14 16:58 ` Andreas Dilger
2019-07-25 2:44 ` [lustre-devel] [PATCH 5/8] lustre: fld: retry fld rpc until the import is closed James Simmons
2019-08-14 16:58 ` Andreas Dilger
2019-07-25 2:44 ` [lustre-devel] [PATCH 6/8] lustre: fld: fld client lookup should retry James Simmons
2019-08-14 16:58 ` Andreas Dilger
2019-07-25 2:44 ` [lustre-devel] [PATCH 7/8] lustre: tests: testcases for multiple modify RPCs feature James Simmons
2019-08-14 16:58 ` Andreas Dilger
2019-07-25 2:44 ` [lustre-devel] [PATCH 8/8] lustre: ldlm: Don't check opcode with NULL rq_reqmsg James Simmons
2019-08-14 16:58 ` Andreas Dilger
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=87h879mzz3.fsf@notabene.neil.brown.name \
--to=neilb@suse.com \
--cc=lustre-devel@lists.lustre.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).