From: Chris Ball <cjb@laptop.org>
To: Bruce Guenter <bruce@untroubled.org>
Cc: linux-btrfs@vger.kernel.org
Subject: Re: Cross-subvolume link causes kernel BUG
Date: Mon, 08 Mar 2010 12:39:38 -0500 [thread overview]
Message-ID: <m3hboqsof9.fsf@pullcord.laptop.org> (raw)
In-Reply-To: <20100308172438.GA5506@untroubled.org> (Bruce Guenter's message of "Mon, 8 Mar 2010 11:24:38 -0600")
Hi,
> ln segfaults, and the bug above is found in dmesg. Subsequent
> accesses to the subvolume result in a D state hung process. Full
> dmesg follows. I first observed this on a Gentoo system and
> reproduced it on Ubuntu. Both were running unpatched 2.6.32.9
> kernels.
I think this is fixed in 2.6.33, as a result of the patch below.
Let us know if you see a segfault on 2.6.33, or after applying this
patch to your current kernel.
Thanks,
- Chris.
commit 4a8be425a8fb8fbb5d881eb55fa6634c3463b9c9
Author: TARUISI Hiroaki <taruishi.hiroak@jp.fujitsu.com>
Date: Thu Nov 12 07:14:26 2009 +0000
Btrfs: deny sys_link across subvolumes.
I rebased Christian Parpart's patch to deny hard link across
subvolumes. Original patch modifies also btrfs_rename, but
I excluded it because we can move across subvolumes now and
it make no problem.
-----------------
Hard link across subvolumes should not allowed in Btrfs.
btrfs_link checks root of 'to' directory is same as root
of 'from' file. If not same, btrfs_link returns -EPERM.
Signed-off-by: TARUISI Hiroaki <taruishi.hiroak@jp.fujitsu.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 168e8c0..da76cad 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -4462,6 +4462,10 @@ static int btrfs_link(struct dentry *old_dentry, struct inode *dir,
if (inode->i_nlink == 0)
return -ENOENT;
+ /* do not allow sys_link's with other subvols of the same device */
+ if (root->objectid != BTRFS_I(inode)->root->objectid)
+ return -EPERM;
+
/*
* 1 item for inode ref
* 2 items for dir items
--
Chris Ball <cjb@laptop.org>
One Laptop Per Child
next prev parent reply other threads:[~2010-03-08 17:39 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-08 17:24 Cross-subvolume link causes kernel BUG Bruce Guenter
2010-03-08 17:39 ` Chris Ball [this message]
2010-03-08 18:26 ` Bruce Guenter
2010-03-08 21:21 ` Mike Fedyk
2010-03-09 2:16 ` Mike Fedyk
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m3hboqsof9.fsf@pullcord.laptop.org \
--to=cjb@laptop.org \
--cc=bruce@untroubled.org \
--cc=linux-btrfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox