]> git.neil.brown.name Git - history.git/commitdiff
[PATCH] nfs4 lease: export remove_lease
authorWilliam A. Adamson <andros@thnk.citi.umich.edu>
Wed, 20 Oct 2004 01:45:19 +0000 (18:45 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Wed, 20 Oct 2004 01:45:19 +0000 (18:45 -0700)
Export remove_lease(), an interface to time_out_leases() with an
fl_break_time in the past.  needed by nfsd

Signed-off-by: Andy Adamson <andros@citi.umich.edu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
fs/locks.c
include/linux/fs.h

index 43ced9dee14c83a6c136ba17cc29c4358f3d3508..fd6e88bb9890d6ee7d3930e63dc146917b7e1f7c 100644 (file)
@@ -1090,6 +1090,26 @@ static void time_out_leases(struct inode *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
index b6569ec04ff442afed4403b3b3f6cbf97144e10f..4a9463c662ed6b13a65b8ce073e2e48a36a9d76b 100644 (file)
@@ -702,6 +702,7 @@ extern int flock_lock_file_wait(struct file *filp, struct file_lock *fl);
 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);