From 3d279a8bb34ef9b720f410e0064b1393faf1325f Mon Sep 17 00:00:00 2001
From: Gleb Natapov <gleb@cloudius-systems.com>
Date: Wed, 7 May 2014 10:12:31 +0300
Subject: [PATCH] vfs: remove unnecessary vcount() checks in rename()

Elevated vnode reference count should not prevent rename() from working.

Signed-off-by: Gleb Natapov <gleb@cloudius-systems.com>
Signed-off-by: Avi Kivity <avi@cloudius-systems.com>
---
 fs/vfs/vfs_syscalls.cc | 11 -----------
 1 file changed, 11 deletions(-)

diff --git a/fs/vfs/vfs_syscalls.cc b/fs/vfs/vfs_syscalls.cc
index 9dda67557..7c24c0d2e 100644
--- a/fs/vfs/vfs_syscalls.cc
+++ b/fs/vfs/vfs_syscalls.cc
@@ -635,12 +635,6 @@ sys_rename(char *src, char *dest)
 	if ((error = vn_access(vp1, VWRITE)) != 0)
 		goto err1;
 
-	/* Is the source busy ? */
-	if (vcount(vp1) >= 2) {
-		error = EBUSY;
-		goto err1;
-	}
-
 	/* Check type of source & target */
 	error = namei(dest, &dp2);
 	if (error == 0) {
@@ -660,11 +654,6 @@ sys_rename(char *src, char *dest)
 			error = EEXIST;
 			goto err2;
 		}
-
-		if (vcount(vp2) >= 2) {
-			error = EBUSY;
-			goto err2;
-		}
 	} else if (error == ENOENT) {
 		if (vp1->v_type != VDIR && has_trailing(dest, '/')) {
 			error = ENOTDIR;
-- 
GitLab