From: "J. Bruce Fields" <bfields@fieldses.org>
To: Steven Whitehouse <swhiteho@redhat.com>
Cc: Peter Staubach <staubach@redhat.com>,
Andrew Morton <akpm@linux-foundation.org>,
linux-fsdevel@vger.kernel.org,
Trond Myklebust <Trond.Myklebust@netapp.com>
Subject: Re: [PATCH 6/6] nfs: disable leases over NFS
Date: Fri, 29 Jun 2007 18:21:34 -0400 [thread overview]
Message-ID: <20070629222134.GA7983@fieldses.org> (raw)
In-Reply-To: <1183156227.3311.1.camel@localhost.localdomain>
On Fri, Jun 29, 2007 at 11:30:27PM +0100, Steven Whitehouse wrote:
> EINVAL is fine by me, just so long as its not EAGAIN then it gets my
> blessing :-)
OK. I've changed the error return, in both the NFS and GFS2 cases, did
some minor cleanup and commenting while I was at it, and pushed the
results out to "for-mm":
git://linux-nfs.org/~bfields/linux.git for-mm
--b.
diff --git a/fs/gfs2/ops_file.c b/fs/gfs2/ops_file.c
index e34d9bd..29a86fe 100644
--- a/fs/gfs2/ops_file.c
+++ b/fs/gfs2/ops_file.c
@@ -500,17 +500,15 @@ static int gfs2_fsync(struct file *file, struct dentry *dentry, int datasync)
static int gfs2_setlease(struct file *file, long arg, struct file_lock **fl)
{
struct gfs2_sbd *sdp = GFS2_SB(file->f_mapping->host);
- int ret = -EOPNOTSUPP;
- if (sdp->sd_args.ar_localflocks) {
+ /*
+ * We don't currently have a way to enforce a lease across the whole
+ * cluster; until we do, disable leases (by just returning -EINVAL),
+ * unless the administrator has requested purely local locking.
+ */
+ if (sdp->sd_args.ar_localflocks)
return setlease(file, arg, fl);
- }
-
- /* For now fail the delegation request. Cluster file system can not
- allow any node in the cluster to get a local lease until it can
- be managed centrally by the cluster file system.
- */
- return ret;
+ return -EINVAL;
}
/**
diff --git a/fs/nfs/file.c b/fs/nfs/file.c
index 97c1a3d..d92a383 100644
--- a/fs/nfs/file.c
+++ b/fs/nfs/file.c
@@ -560,5 +560,10 @@ static int nfs_flock(struct file *filp, int cmd, struct file_lock *fl)
static int nfs_setlease(struct file *file, long arg, struct file_lock **fl)
{
- return -EOPNOTSUPP;
+ /*
+ * There is no protocol support for leases, so we have no way
+ * to implement them correctly in the face of opens by other
+ * clients.
+ */
+ return -EINVAL;
}
next prev parent reply other threads:[~2007-06-29 22:21 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-06-29 19:21 vfs lease api J. Bruce Fields
2007-06-29 19:21 ` [PATCH 1/6] locks: share more common lease code J. Bruce Fields
2007-06-29 19:21 ` J. Bruce Fields
2007-06-29 19:21 ` [PATCH 2/6] locks: provide a file lease method enabling cluster-coherent leases J. Bruce Fields
2007-06-29 19:21 ` J. Bruce Fields
2007-06-30 9:26 ` Christoph Hellwig
2007-06-29 19:21 ` [PATCH 3/6] locks: rename lease functions to reflect locks.c conventions J. Bruce Fields
2007-06-29 19:21 ` J. Bruce Fields
2007-06-30 9:22 ` Christoph Hellwig
2007-07-04 21:42 ` J. Bruce Fields
2007-06-29 19:21 ` [PATCH 4/6] locks: fix locks.c lease symbol exports J. Bruce Fields
2007-06-29 19:21 ` J. Bruce Fields
2007-06-30 9:23 ` Christoph Hellwig
2007-07-04 21:42 ` J. Bruce Fields
2007-06-29 19:21 ` [PATCH 5/6] gfs2: stop giving out non-cluster-coherent leases J. Bruce Fields
2007-06-29 19:21 ` J. Bruce Fields
2007-06-30 9:27 ` Christoph Hellwig
2007-07-01 15:00 ` J. Bruce Fields
2007-07-04 21:48 ` J. Bruce Fields
2007-06-29 19:21 ` [PATCH 6/6] nfs: disable leases over NFS J. Bruce Fields
2007-06-29 19:21 ` J. Bruce Fields
2007-06-29 21:16 ` Peter Staubach
2007-06-29 21:39 ` J. Bruce Fields
2007-06-29 22:30 ` Steven Whitehouse
2007-06-29 22:21 ` J. Bruce Fields [this message]
2007-06-30 9:25 ` Christoph Hellwig
2007-07-04 23:22 ` J. Bruce Fields
2007-07-05 15:41 ` J. Bruce Fields
2007-07-11 10:20 ` Christoph Hellwig
2007-07-11 23:10 ` J. Bruce Fields
2007-06-30 9:20 ` [PATCH 1/6] locks: share more common lease code Christoph Hellwig
2007-07-03 22:17 ` J. Bruce Fields
2007-07-04 8:26 ` Christoph Hellwig
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=20070629222134.GA7983@fieldses.org \
--to=bfields@fieldses.org \
--cc=Trond.Myklebust@netapp.com \
--cc=akpm@linux-foundation.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=staubach@redhat.com \
--cc=swhiteho@redhat.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 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.