From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andy Adamson Subject: [PATCH 2 of 10] RESEND lease interfaces for version 4 NFSD Date: Tue, 21 Sep 2004 18:35:45 -0400 Sender: linux-fsdevel-owner@vger.kernel.org Message-ID: <1095804047.21441d5b.2@citi.umich.edu> Cc: nfsv4@linux-nfs.org, willy@debian.org Return-path: Received: from thnk.citi.umich.edu ([141.211.133.95]:14469 "EHLO thnk.citi.umich.edu") by vger.kernel.org with ESMTP id S266680AbUIUWgQ (ORCPT ); Tue, 21 Sep 2004 18:36:16 -0400 To: linux-fsdevel@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org VFS: add a lock manager release private callback to locks_free_lock() for lock manger lease clean-up. Signed-off-by: Andy Adamson --- linux-2.6.9-rc2-andros/fs/locks.c | 7 ++++++- linux-2.6.9-rc2-andros/include/linux/fs.h | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff -puN fs/locks.c~lmops-release-priv fs/locks.c --- linux-2.6.9-rc2/fs/locks.c~lmops-release-priv 2004-09-21 18:00:23.069460088 -0400 +++ linux-2.6.9-rc2-andros/fs/locks.c 2004-09-21 18:00:23.076459024 -0400 @@ -172,7 +172,12 @@ static inline void locks_free_lock(struc fl->fl_ops->fl_release_private(fl); fl->fl_ops = NULL; } - fl->fl_lmops = NULL; + + if (fl->fl_lmops) { + if (fl->fl_lmops->fl_release_private) + fl->fl_lmops->fl_release_private(fl); + fl->fl_lmops = NULL; + } kmem_cache_free(filelock_cache, fl); } diff -puN include/linux/fs.h~lmops-release-priv include/linux/fs.h --- linux-2.6.9-rc2/include/linux/fs.h~lmops-release-priv 2004-09-21 18:00:23.071459784 -0400 +++ linux-2.6.9-rc2-andros/include/linux/fs.h 2004-09-21 18:00:23.077458872 -0400 @@ -634,6 +634,7 @@ struct lock_manager_operations { int (*fl_compare_owner)(struct file_lock *, struct file_lock *); void (*fl_notify)(struct file_lock *); /* unblock callback */ void (*fl_copy_lock)(struct file_lock *, struct file_lock *); + void (*fl_release_private)(struct file_lock *); }; /* that will die - we need it for nfs_lock_info */ _