All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@infradead.org>
To: "J. Bruce Fields" <bfields@citi.umich.edu>
Cc: linux-fsdevel@vger.kernel.org, nfs@lists.sourceforge.net,
	Marc Eshel <eshel@almaden.ibm.com>
Subject: Re: [PATCH 4/14] locks: add locking function that returns conflicting lock
Date: Sat, 3 Feb 2007 08:54:50 +0000	[thread overview]
Message-ID: <20070203085450.GD18828@infradead.org> (raw)
In-Reply-To: <96a0abaf64b433a7e7450e7e35d0baf2c44103db.1170479265.git.bfields@citi.umich.edu>

On Sat, Feb 03, 2007 at 12:34:00AM -0500, J. Bruce Fields wrote:
> From: Marc Eshel <eshel@almaden.ibm.com> - unquoted
> 
> The nfsv4 protocol's lock operation, in the case of a conflict, returns
> information about the conflicting lock.
> 
> It's unclear how clients can use this, so for now we're not going so far as to
> add a filesystem method that can return a conflicting lock, but we may as well
> return something in the local case when it's easy to.
> 
> Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
> ---
>  fs/locks.c                 |   18 ++++++++++++++++++
>  include/linux/lockd/bind.h |    1 +
>  2 files changed, 19 insertions(+), 0 deletions(-)
> 
> diff --git a/fs/locks.c b/fs/locks.c
> index c88139d..1bd6418 100644
> --- a/fs/locks.c
> +++ b/fs/locks.c
> @@ -1706,6 +1706,24 @@ int vfs_lock_file(struct file *filp, unsigned int cmd, struct file_lock *fl)
>  }
>  EXPORT_SYMBOL(vfs_lock_file);
>  
> +/**
> + * vfs_lock_file_conf - file byte range lock
> + * @filp: The file to apply the lock to
> + * @fl: The lock to be applied
> + * @conf: Place to return a copy of the conflicting lock, if found.
> + *
> + * read comments for vfs_lock_file()
> + */
> +int vfs_lock_file_conf(struct file *filp, struct file_lock *fl, struct file_lock *conf)
> +{
> +	if (filp->f_op && filp->f_op->lock) {
> +		__locks_copy_lock(conf, fl);
> +		return filp->f_op->lock(filp, F_SETLK, fl);
> +	} else
> +		return posix_lock_file_conf(filp, fl, conf);
> +}
> +EXPORT_SYMBOL(vfs_lock_file_conf);

Is there any reason we want to have both variants?  I think vfs_lock_file
should simple get the last argument and we shouldn't have a separate
vfs_lock_file_conf (which btw doesn't have an exactly descriptive name).
The also allows you to kill __posix_lock_file_conf and only keep a single
posix_lock_file routines that gets the argument aswell.


And btw, in case you ask why I demand all these addition cleanuos:
you're touching an already more than messy codebase and make it more
complex, that needs some cleanups to counterbalance :)

  parent reply	other threads:[~2007-02-03  8:54 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <11704808501171-git-send-email->
     [not found] ` <11704808502512-git-send-email->
     [not found]   ` <11704808513862-git-send-email->
     [not found]     ` <1170480851972-git-send-email->
     [not found]       ` <11704808513070-git-send-email->
     [not found]         ` <117048085185-git-send-email->
     [not found]           ` <11704808513263-git-send-email->
     [not found]             ` <11704808513185-git-send-email->
     [not found]               ` <11704808511238-git-send-email->
     [not found]                 ` <11704808513085-git-send-email->
     [not found]                   ` <11704808521765-git-send-email->
     [not found]                     ` <11704808523686-git-send-email->
2007-02-03  5:33 ` [PATCH 1/14] locks: always unlock on close J. Bruce Fields
2007-02-03  5:33   ` J. Bruce Fields
2007-02-03  5:33   ` J. Bruce Fields
2007-02-03  5:33   ` [PATCH 2/14] locks: factor out generic/filesystem switch from test_lock J. Bruce Fields
2007-02-03  5:33     ` J. Bruce Fields
2007-02-03  5:33     ` J. Bruce Fields
2007-02-03  8:50     ` Christoph Hellwig
2007-02-04  1:48       ` J. Bruce Fields
2007-02-04  8:41         ` Christoph Hellwig
2007-02-04  0:32     ` [NFS] " Trond Myklebust
2007-02-04  1:52       ` J. Bruce Fields
2007-02-03  5:33   ` [PATCH 3/14] locks: factor out generic/filesystem switch from setlock code J. Bruce Fields
2007-02-03  5:33     ` J. Bruce Fields
2007-02-03  5:33     ` J. Bruce Fields
2007-02-03  8:51     ` Christoph Hellwig
2007-02-03  5:16       ` Brad Boyer
2007-02-04  2:27         ` J. Bruce Fields
2007-02-04  8:37         ` Christoph Hellwig
2007-02-03 21:27           ` Brad Boyer
2007-02-04  1:58       ` J. Bruce Fields
2007-02-03  5:34   ` [PATCH 4/14] locks: add locking function that returns conflicting lock J. Bruce Fields
2007-02-03  5:34     ` J. Bruce Fields
2007-02-03  5:34     ` J. Bruce Fields
2007-02-03  8:54     ` Christoph Hellwig [this message]
2007-02-04  2:02       ` J. Bruce Fields
2007-02-03  5:34   ` [PATCH 5/14] locks: add fl_notify arguments for asynchronous lock return J. Bruce Fields
2007-02-03  5:34     ` J. Bruce Fields
2007-02-03  5:34     ` J. Bruce Fields
2007-02-03  5:34   ` [PATCH 6/14] locks: add lock cancel command J. Bruce Fields
2007-02-03  5:34     ` J. Bruce Fields
2007-02-03  5:34     ` J. Bruce Fields
2007-02-03  5:34   ` [PATCH 7/14] nfsd4: Convert NFSv4 to new lock interface J. Bruce Fields
2007-02-03  5:34     ` J. Bruce Fields
2007-02-03  5:34     ` J. Bruce Fields
2007-02-03  5:34   ` [PATCH 8/14] lockd: save lock state on deferral J. Bruce Fields
2007-02-03  5:34     ` J. Bruce Fields
2007-02-03  5:34     ` J. Bruce Fields
2007-02-03  5:34   ` [PATCH 9/14] lockd: handle fl_notify callbacks J. Bruce Fields
2007-02-03  5:34     ` J. Bruce Fields
2007-02-03  5:34     ` J. Bruce Fields
2007-02-04  0:40     ` [NFS] " Trond Myklebust
2007-02-04  2:10       ` J. Bruce Fields
2007-02-03  5:34   ` [PATCH 10/14] lockd: pass cookie in nlmsvc_testlock J. Bruce Fields
2007-02-03  5:34     ` J. Bruce Fields
2007-02-03  5:34     ` J. Bruce Fields
2007-02-03  5:34   ` [PATCH 11/14] lockd: handle test_lock deferrals J. Bruce Fields
2007-02-03  5:34     ` J. Bruce Fields
2007-02-03  5:34     ` J. Bruce Fields
2007-02-03  5:34   ` [PATCH 12/14] lockd: always preallocate block in nlmsvc_lock() J. Bruce Fields
2007-02-03  5:34     ` J. Bruce Fields
2007-02-03  5:34     ` J. Bruce Fields
2007-02-03  5:34   ` [PATCH 13/14] lockd: add code to handle deferred lock requests J. Bruce Fields
2007-02-03  5:34     ` J. Bruce Fields
2007-02-03  5:34     ` J. Bruce Fields
2007-02-03  5:34   ` [PATCH 14/14] gfs2: nfs lock support for gfs2 J. Bruce Fields
2007-02-03  5:34     ` J. Bruce Fields
2007-02-03  5:34     ` 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=20070203085450.GD18828@infradead.org \
    --to=hch@infradead.org \
    --cc=bfields@citi.umich.edu \
    --cc=eshel@almaden.ibm.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=nfs@lists.sourceforge.net \
    /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.