2000-11-21 04:18:00

by Christopher Yeoh

[permalink] [raw]
Subject: [PATCH] Attempt to hard link across filesystems results in un-unmountable filesystem

Hi Linus,

In 2.4-test11 attempting to hard link a file across filesystems (the
link does fail correctly) results in one of the filesystems (the one
the hard link was to be created on) to be in a state such that it
can't be unmounted.

The attached patch fixes this problem.

Chris.

--- fs/namei.c.orig Tue Nov 21 14:34:54 2000
+++ fs/namei.c Tue Nov 21 14:34:22 2000
@@ -1607,7 +1607,7 @@
goto out;
error = -EXDEV;
if (old_nd.mnt != nd.mnt)
- goto out;
+ goto out2;
new_dentry = lookup_create(&nd, 0);
error = PTR_ERR(new_dentry);
if (!IS_ERR(new_dentry)) {
@@ -1615,6 +1615,7 @@
dput(new_dentry);
}
up(&nd.dentry->d_inode->i_sem);
+out2:
path_release(&nd);
out:
path_release(&old_nd);