From mboxrd@z Thu Jan 1 00:00:00 1970 From: "William A.(Andy) Adamson" Subject: PATCH [9/10] lease interfaces for version 4 NFSD Date: Mon, 20 Sep 2004 16:23:12 -0400 Sender: linux-fsdevel-owner@vger.kernel.org Message-ID: <20040920202312.0AB461BBAA@citi.umich.edu> Mime-Version: 1.0 Content-Type: multipart/mixed ; boundary="==_Exmh_-2106349280" Cc: andros@citi.umich.edu Return-path: Received: from citi.umich.edu ([141.211.133.111]:29592 "EHLO citi.umich.edu") by vger.kernel.org with ESMTP id S267325AbUITUXO (ORCPT ); Mon, 20 Sep 2004 16:23:14 -0400 To: linux-fsdevel@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org This is a multipart MIME message. --==_Exmh_-2106349280 Content-Type: text/plain; charset=us-ascii VFS: export remove_lease(), an interface to time_out_leases() with a fl_break_time in the past. needed by nfsd. Signed-off-by: Andy Adamson --==_Exmh_-2106349280 Content-Type: text/plain ; name="linux-2.6.9-rc2-09-remove-lease.dif"; charset=us-ascii Content-Description: linux-2.6.9-rc2-09-remove-lease.dif Content-Disposition: attachment; filename="linux-2.6.9-rc2-09-remove-lease.dif" diff --recursive -puN old/fs/locks.c new/fs/locks.c --- old/fs/locks.c 2004-09-20 14:18:58.644037000 -0400 +++ new/fs/locks.c 2004-09-20 14:34:10.952756000 -0400 @@ -1086,6 +1086,26 @@ static void time_out_leases(struct inode } /** + * remove_lease - let time_out_leases remove the lease. + * @@file_lock: the lease to remove + */ +void remove_lease(struct file_lock *fl) +{ + if (!IS_LEASE(fl)) + return; + + lock_kernel(); + + fl->fl_type = F_UNLCK | F_INPROGRESS; + fl->fl_break_time = jiffies - 10; + time_out_leases(fl->fl_file->f_dentry->d_inode); + + unlock_kernel(); +} + +EXPORT_SYMBOL(remove_lease); + +/** * __break_lease - revoke all outstanding leases on file * @inode: the inode of the file to return * @mode: the open mode (read or write) diff --recursive -puN old/include/linux/fs.h new/include/linux/fs.h --- old/include/linux/fs.h 2004-09-20 14:27:37.183726000 -0400 +++ new/include/linux/fs.h 2004-09-20 14:35:42.696076000 -0400 @@ -702,6 +702,7 @@ extern int flock_lock_file_wait(struct f extern int __break_lease(struct inode *inode, unsigned int flags); extern void lease_get_mtime(struct inode *, struct timespec *time); extern int setlease(struct file *, long, struct file_lock **); +extern void remove_lease(struct file_lock *); extern int lock_may_read(struct inode *, loff_t start, unsigned long count); extern int lock_may_write(struct inode *, loff_t start, unsigned long count); extern void steal_locks(fl_owner_t from); --==_Exmh_-2106349280--