Jeff Layton : >> /* Check whether we can create an object with dentry child in directory > > This doesn't look right to me. > > The fcntl(2) manpage basically says that leases should be broken if the > file is opened for read or write, or is truncated. unlinks don't seem > to fall into either category... Maybe the new one is better than before. -------------------------------------------------------------- After client get one file's READ delegation through NFSv4, server delete this file but don't reclaim the delegation. This patch add break_lease at may_delete, which can reclaim delegations. Signed-off-by: Mi Jinlong <mijinlong@xxxxxxxxxxxxxx> --- fs/namei.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/fs/namei.c b/fs/namei.c index b86b96f..0423e19 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -1338,6 +1338,10 @@ static int may_delete(struct inode *dir,struct dentry *victim,int isdir) return -ENOENT; if (victim->d_flags & DCACHE_NFSFS_RENAMED) return -EBUSY; + + /* try to break leases, but no effect to delete. */ + break_lease(victim->d_inode, FMODE_WRITE); + return 0; } -- 1.7.0 -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html