From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andy Adamson Subject: [PATCH 5 of 10] RESEND lease interfaces for version 4 NFSD Date: Tue, 21 Sep 2004 18:36:01 -0400 Sender: linux-fsdevel-owner@vger.kernel.org Message-ID: <1095804047.21441d5b.5@citi.umich.edu> Cc: nfsv4@linux-nfs.org, willy@debian.org Return-path: Received: from thnk.citi.umich.edu ([141.211.133.95]:17541 "EHLO thnk.citi.umich.edu") by vger.kernel.org with ESMTP id S266708AbUIUWgd (ORCPT ); Tue, 21 Sep 2004 18:36:33 -0400 To: linux-fsdevel@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org VFS: move the f_delown processing from lease_modify() into a new default lock manager fl_release_private callback. Signed-off-by: Andy Adamson --- linux-2.6.9-rc2-andros/fs/locks.c | 17 +++++++++++------ 1 files changed, 11 insertions(+), 6 deletions(-) diff -puN fs/locks.c~default-fl-release-priv fs/locks.c --- linux-2.6.9-rc2/fs/locks.c~default-fl-release-priv 2004-09-21 18:00:27.703755568 -0400 +++ linux-2.6.9-rc2-andros/fs/locks.c 2004-09-21 18:00:27.707754960 -0400 @@ -396,8 +396,18 @@ static void lease_break_callback(struct kill_fasync(&fl->fl_fasync, SIGIO, POLL_MSG); } +static void lease_release_private_callback(struct file_lock *fl) +{ + if (!fl->fl_file) + return; + + f_delown(fl->fl_file); + fl->fl_file->f_owner.signum = 0; +} + struct lock_manager_operations lease_manager_ops = { .fl_break = lease_break_callback, + .fl_release_private = lease_release_private_callback, }; /* @@ -1054,13 +1064,8 @@ static int lease_modify(struct file_lock if (error) return error; locks_wake_up_blocks(fl); - if (arg == F_UNLCK) { - struct file *filp = fl->fl_file; - - f_delown(filp); - filp->f_owner.signum = 0; + if (arg == F_UNLCK) locks_delete_lock(before); - } return 0; } _