linux-cifs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff Layton <jlayton@kernel.org>
To: Murphy Zhou <jencce.kernel@gmail.com>, linux-cifs@vger.kernel.org
Cc: Steve French <smfrench@gmail.com>
Subject: Re: [PATCH] CIFS: unlock file across process
Date: Fri, 14 Feb 2020 07:26:46 -0500	[thread overview]
Message-ID: <370134c148a5f4d12df31a3a9020b66ef316a004.camel@kernel.org> (raw)
In-Reply-To: <20200214043513.uh2jtb62qf54nmud@xzhoux.usersys.redhat.com>

On Fri, 2020-02-14 at 12:35 +0800, Murphy Zhou wrote:
> Now child can't unlock the same file that has been locked by
> parent. Fix this by not skipping unlock if requesting from
> different process.
> 
> Patch tested by LTP and xfstests using samba server.
> 
> Signed-off-by: Murphy Zhou <jencce.kernel@gmail.com>
> ---
>  fs/cifs/smb2file.c | 2 --
>  1 file changed, 2 deletions(-)
> 
> diff --git a/fs/cifs/smb2file.c b/fs/cifs/smb2file.c
> index afe1f03aabe3..b5bca0e13d51 100644
> --- a/fs/cifs/smb2file.c
> +++ b/fs/cifs/smb2file.c
> @@ -151,8 +151,6 @@ smb2_unlock_range(struct cifsFileInfo *cfile, struct file_lock *flock,
>  		    (flock->fl_start + length) <
>  		    (li->offset + li->length))
>  			continue;
> -		if (current->tgid != li->pid)
> -			continue;
>  		if (cinode->can_cache_brlcks) {
>  			/*
>  			 * We can cache brlock requests - simply remove a lock

I'm not as familiar with this code as I once was, but...

From fork(2) manpage:

       *  The  child does not inherit process-associated record locks from its
          parent (fcntl(2)).  (On the other hand,  it  does  inherit  fcntl(2)
          open file description locks and flock(2) locks from its parent.)

It looks like cifs_setlk calls mand_unlock_range, and that gets called
from both fcntl and flock codepaths.

So, I'm not sure about just removing this. It seems like the pid check
is probably correct for traditional posix locks, but probably not for
OFD and flock locks? What ensures that completely unrelated tasks can't
unlock your locks?
-- 
Jeff Layton <jlayton@kernel.org>


  parent reply	other threads:[~2020-02-14 12:26 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-14  4:35 [PATCH] CIFS: unlock file across process Murphy Zhou
2020-02-14  5:32 ` Steve French
2020-02-14 12:26 ` Jeff Layton [this message]
2020-02-14 14:28   ` Murphy Zhou
2020-02-14 19:03     ` Pavel Shilovsky
2020-02-19  2:10       ` Murphy Zhou
2020-02-24 19:39         ` Pavel Shilovsky
2020-02-25  5:15           ` Murphy Zhou
2020-02-25 19:21             ` Pavel Shilovsky

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=370134c148a5f4d12df31a3a9020b66ef316a004.camel@kernel.org \
    --to=jlayton@kernel.org \
    --cc=jencce.kernel@gmail.com \
    --cc=linux-cifs@vger.kernel.org \
    --cc=smfrench@gmail.com \
    /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).