All of lore.kernel.org
 help / color / mirror / Atom feed
From: "J. Bruce Fields" <bfields@fieldses.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-fsdevel@vger.kernel.org,
	"J. Bruce Fields" <bfields@citi.umich.edu>
Subject: [PATCH 1/6] locks: share more common lease code
Date: Fri, 29 Jun 2007 15:21:25 -0400	[thread overview]
Message-ID: <11831448902131-git-send-email-bfields@fieldses.org> (raw)
Message-ID: <6e0beaf3e950494a6903571f0b5c9b61fc7bf650.1183143819.git.bfields@citi.umich.edu> (raw)
In-Reply-To: <1183144890244-git-send-email-bfields@fieldses.org>

From: J. Bruce Fields <bfields@citi.umich.edu>

Share more code between setlease (used by nfsd) and fcntl.

Also some minor cleanup.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
---
 fs/locks.c |   30 ++++++++++--------------------
 1 files changed, 10 insertions(+), 20 deletions(-)

diff --git a/fs/locks.c b/fs/locks.c
index 431a8b8..6ad3c7b 100644
--- a/fs/locks.c
+++ b/fs/locks.c
@@ -1346,6 +1346,14 @@ static int __setlease(struct file *filp, long arg, struct file_lock **flp)
 	struct inode *inode = dentry->d_inode;
 	int error, rdlease_count = 0, wrlease_count = 0;
 
+	if ((current->fsuid != inode->i_uid) && !capable(CAP_LEASE))
+		return -EACCES;
+	if (!S_ISREG(inode->i_mode))
+		return -EINVAL;
+	error = security_file_lock(filp, arg);
+	if (error)
+		return error;
+
 	time_out_leases(inode);
 
 	error = -EINVAL;
@@ -1431,18 +1439,8 @@ out:
 
 int setlease(struct file *filp, long arg, struct file_lock **lease)
 {
-	struct dentry *dentry = filp->f_path.dentry;
-	struct inode *inode = dentry->d_inode;
 	int error;
 
-	if ((current->fsuid != inode->i_uid) && !capable(CAP_LEASE))
-		return -EACCES;
-	if (!S_ISREG(inode->i_mode))
-		return -EINVAL;
-	error = security_file_lock(filp, arg);
-	if (error)
-		return error;
-
 	lock_kernel();
 	error = __setlease(filp, arg, lease);
 	unlock_kernel();
@@ -1469,14 +1467,6 @@ int fcntl_setlease(unsigned int fd, struct file *filp, long arg)
 	struct inode *inode = dentry->d_inode;
 	int error;
 
-	if ((current->fsuid != inode->i_uid) && !capable(CAP_LEASE))
-		return -EACCES;
-	if (!S_ISREG(inode->i_mode))
-		return -EINVAL;
-	error = security_file_lock(filp, arg);
-	if (error)
-		return error;
-
 	locks_init_lock(&fl);
 	error = lease_init(filp, arg, &fl);
 	if (error)
@@ -1490,9 +1480,9 @@ int fcntl_setlease(unsigned int fd, struct file *filp, long arg)
 
 	error = fasync_helper(fd, filp, 1, &flp->fl_fasync);
 	if (error < 0) {
-		/* remove lease just inserted by __setlease */
+		/* remove lease just inserted by setlease */
 		flp->fl_type = F_UNLCK | F_INPROGRESS;
-		flp->fl_break_time = jiffies- 10;
+		flp->fl_break_time = jiffies - 10;
 		time_out_leases(inode);
 		goto out_unlock;
 	}
-- 
1.5.2.58.g98ee


  reply	other threads:[~2007-06-29 19: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 ` J. Bruce Fields [this message]
2007-06-29 19:21   ` [PATCH 1/6] locks: share more common lease code 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
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=11831448902131-git-send-email-bfields@fieldses.org \
    --to=bfields@fieldses.org \
    --cc=akpm@linux-foundation.org \
    --cc=bfields@citi.umich.edu \
    --cc=linux-fsdevel@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.