linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] btrfs: ioctl BTRFS_IOC_FS_INFO and BTRFS_IOC_DEV_INFO miss-matched with slots
@ 2014-05-16 14:06 Anand Jain
  2014-05-16 14:40 ` Shilong Wang
  0 siblings, 1 reply; 5+ messages in thread
From: Anand Jain @ 2014-05-16 14:06 UTC (permalink / raw)
  To: linux-btrfs; +Cc: wangsl.fnst

BTRFS_IOC_FS_INFO return num_devices which does not include seed disks,
BTRFS_IOC_DEV_INFO fetches seed disk when probed. So in this case hits
the btrfs-progs bug:
            get_fs_info()
            ::
                    BUG_ON(ndevs >= fi_args->num_devices);
which is very easy to hit by using btrfs filesystem show.

This patch will make BTRFS_IOC_DEV_INFO ioctl to provide disks only
of the FSID being probed (seed disks are under different FSID).

which means when seed is still not deleted from the sprout the btrfs
filesystem show command will show disks them under their
respective FSIDs

Signed-off-by: Anand Jain <anand.jain@oracle.com>
---
 fs/btrfs/ioctl.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
index ff27c08..902d279 100644
--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
@@ -2584,7 +2584,8 @@ static long btrfs_ioctl_dev_info(struct btrfs_root *root, void __user *arg)
 		s_uuid = di_args->uuid;
 
 	mutex_lock(&fs_devices->device_list_mutex);
-	dev = btrfs_find_device(root->fs_info, di_args->devid, s_uuid, NULL);
+	dev = btrfs_find_device(root->fs_info, di_args->devid, s_uuid,
+				fs_devices->fsid);
 
 	if (!dev) {
 		ret = -ENODEV;
-- 
1.7.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread
* [PATCH] make 'btrfs filesystem show' to work when seeding
@ 2014-08-16  3:08 Anand Jain
  2014-08-16  3:08 ` [PATCH] btrfs: ioctl BTRFS_IOC_FS_INFO and BTRFS_IOC_DEV_INFO miss-matched with slots Anand Jain
  0 siblings, 1 reply; 5+ messages in thread
From: Anand Jain @ 2014-08-16  3:08 UTC (permalink / raw)
  To: linux-btrfs; +Cc: wangsl.fnst, lists

yeah. btrfs filesystem show didn't work any time before as in
the test case below.

mkfs.btrfs /dev/sdb -f
btrfstune -S 1 /dev/sdb
mount /dev/sdb /btrfs
btrfs dev add /dev/sdc /btrfs
btrfs fi show <-- fails.

kindly ref to the commit log for bug and its fix details.

Anand Jain (1):
  btrfs-progs: do a separate probe for _transient_ replacing device    
    As mentioned in the kernel patch       btrfs: ioctl
    BTRFS_IOC_FS_INFO and BTRFS_IOC_DEV_INFO miss-matched with slots

 utils.c | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

Anand Jain (1):
  btrfs: ioctl BTRFS_IOC_FS_INFO and BTRFS_IOC_DEV_INFO miss-matched
    with slots

 fs/btrfs/ioctl.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

-- 
2.0.0.153.g79dcccc


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-08-18  8:16 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-05-16 14:06 [PATCH] btrfs: ioctl BTRFS_IOC_FS_INFO and BTRFS_IOC_DEV_INFO miss-matched with slots Anand Jain
2014-05-16 14:40 ` Shilong Wang
2014-05-16 15:13   ` Anand Jain
2014-05-16 15:23     ` Shilong Wang
2014-08-16  3:08 [PATCH] make 'btrfs filesystem show' to work when seeding Anand Jain
2014-08-16  3:08 ` [PATCH] btrfs: ioctl BTRFS_IOC_FS_INFO and BTRFS_IOC_DEV_INFO miss-matched with slots Anand Jain

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).