Linux watricky 3.6.11-1-ARCH #1 SMP PREEMPT Tue Dec 18 08:57:15 CET 2012 x86_64 GNU/Linux In working on a snapshot maintenance script I''ve noticed some odd behaviour. Note the smbshare path. I''ve put this into its own subvolume as I don''t plan on snapshotting it. In the first command''s output, this path is printed correctly, however in the second output it has "4.snap" appended, similar to the names of the snapshots I made 22 hours ago. If this is a documented issue with a fix then no worries. But if not and anyone wants me to check into any further specifics, please let me know. > [root@watricky mnt]# btrfs subvolume list / -a > ID 258 gen 4226 top level 384 path media/smbshare > ID 259 gen 4337 top level 384 path home > ID 384 gen 4321 top level 5 path <FS_TREE>/__active > ID 392 gen 4337 top level 384 path var > ID 393 gen 4267 top level 384 path usr > ID 428 gen 4267 top level 5 path <FS_TREE>/__snapshot/__active.20130121-23h44.snap > ID 429 gen 3980 top level 5 path <FS_TREE>/__snapshot/__active_home.20130121-23h45.snap > ID 430 gen 4043 top level 5 path <FS_TREE>/__snapshot/__active_var.20130121-23h45.snap > ID 431 gen 4267 top level 5 path <FS_TREE>/__snapshot/__active_usr.20130121-23h45.snap > [root@watricky mnt]# btrfs subvolume list /home -a > ID 258 gen 4226 top level 5 path <FS_TREE>/__active/media/smbshare4.snap > ID 259 gen 4337 top level 5 path <FS_TREE>/__active/home > ID 384 gen 4321 top level 5 path <FS_TREE>/__active > ID 392 gen 4337 top level 5 path <FS_TREE>/__active/var > ID 393 gen 4267 top level 5 path <FS_TREE>/__active/usr > ID 428 gen 4267 top level 5 path <FS_TREE>/__snapshot/__active.20130121-23h44.snap > ID 429 gen 3980 top level 5 path <FS_TREE>/__snapshot/__active_home.20130121-23h45.snap > ID 430 gen 4043 top level 5 path <FS_TREE>/__snapshot/__active_var.20130121-23h45.snap > ID 431 gen 4267 top level 5 path <FS_TREE>/__snapshot/__active_usr.20130121-23h45.snap > [root@watricky mnt]# Note that the only directly mounted share is __active, mounted at /. -- __________ Brendan Hide http://swiftspirit.co.za/ http://www.webafrica.co.za/?AFF1E97 -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Brendan, ------- >> [root@watricky mnt]# btrfs subvolume list / -a >> ID 258 gen 4226 top level 384 path media/smbshare :: >> [root@watricky mnt]# btrfs subvolume list /home -a >> ID 258 gen 4226 top level 5 path <FS_TREE>/__active/media/smbshare4.snap ------- This is definitely a bug. Thanks for reporting. I have made some fair-assumptions, and have sent out the patch[1] to fix this bug (ref this email thread). Could you kindly test it and report the result ? [1] [PATCH] Btrfs-progs: we need to have the string null terminated Thanks, Anand On 01/23/2013 03:42 AM, Brendan Hide wrote:> Linux watricky 3.6.11-1-ARCH #1 SMP PREEMPT Tue Dec 18 08:57:15 CET 2012 > x86_64 GNU/Linux > > In working on a snapshot maintenance script I''ve noticed some odd > behaviour. Note the smbshare path. I''ve put this into its own subvolume > as I don''t plan on snapshotting it. > > In the first command''s output, this path is printed correctly, however > in the second output it has "4.snap" appended, similar to the names of > the snapshots I made 22 hours ago. > > If this is a documented issue with a fix then no worries. But if not and > anyone wants me to check into any further specifics, please let me know. > > > [root@watricky mnt]# btrfs subvolume list / -a > > ID 258 gen 4226 top level 384 path media/smbshare > > ID 259 gen 4337 top level 384 path home > > ID 384 gen 4321 top level 5 path <FS_TREE>/__active > > ID 392 gen 4337 top level 384 path var > > ID 393 gen 4267 top level 384 path usr > > ID 428 gen 4267 top level 5 path > <FS_TREE>/__snapshot/__active.20130121-23h44.snap > > ID 429 gen 3980 top level 5 path > <FS_TREE>/__snapshot/__active_home.20130121-23h45.snap > > ID 430 gen 4043 top level 5 path > <FS_TREE>/__snapshot/__active_var.20130121-23h45.snap > > ID 431 gen 4267 top level 5 path > <FS_TREE>/__snapshot/__active_usr.20130121-23h45.snap > > [root@watricky mnt]# btrfs subvolume list /home -a > > ID 258 gen 4226 top level 5 path <FS_TREE>/__active/media/smbshare4.snap > > ID 259 gen 4337 top level 5 path <FS_TREE>/__active/home > > ID 384 gen 4321 top level 5 path <FS_TREE>/__active > > ID 392 gen 4337 top level 5 path <FS_TREE>/__active/var > > ID 393 gen 4267 top level 5 path <FS_TREE>/__active/usr > > ID 428 gen 4267 top level 5 path > <FS_TREE>/__snapshot/__active.20130121-23h44.snap > > ID 429 gen 3980 top level 5 path > <FS_TREE>/__snapshot/__active_home.20130121-23h45.snap > > ID 430 gen 4043 top level 5 path > <FS_TREE>/__snapshot/__active_var.20130121-23h45.snap > > ID 431 gen 4267 top level 5 path > <FS_TREE>/__snapshot/__active_usr.20130121-23h45.snap > > [root@watricky mnt]# > > Note that the only directly mounted share is __active, mounted at /. >-- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Anand Jain
2013-Jan-24 10:05 UTC
[PATCH] Btrfs-progs: we need to have the string null terminated
Bug: ------------- btrfs subvolume list / -a ID 258 gen 4226 top level 384 path media/smbshare :: btrfs subvolume list /home -a ID 258 gen 4226 top level 5 path <FS_TREE>/__active/media/smbshare4.snap In the first command''s output, this path is printed correctly, however in the second output it has "4.snap" appended, similar to the names of the snapshots I made 22 hours ago. ------------ Signed-off-by: Anand Jain <anand.jain@oracle.com> Reported-by: Brendan Hide <brendan@swiftspirit.co.za> --- btrfs-list.c | 1 + 1 file changed, 1 insertion(+) diff --git a/btrfs-list.c b/btrfs-list.c index e5f0f96..5acba78 100644 --- a/btrfs-list.c +++ b/btrfs-list.c @@ -633,6 +633,7 @@ static int resolve_root(struct root_lookup *rl, struct root_info *ri, len = strlen(full_path); tmp = malloc(len + add_len + 2); memcpy(tmp + add_len + 1, full_path, len); + tmp[len + add_len + 1] = ''\0''; tmp[add_len] = ''/''; memcpy(tmp, p, add_len); free(full_path); -- 1.8.1.227.g44fe835 -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Confirmed the fix is working. ^ TLDR can stop here :) Recompiled the original Archlinux package from newly-synced ABS but also with your patch. I then tested the newly-compiled btrfs with the patch. I realised after I should have also tested immediately before installing the patched version, so I reinstalled the original unpatched version for the final test to confirm the problem was rectified entirely by the one-line change. The attached log shows the detail. On 24/01/13 12:00, Anand Jain wrote:> > > Brendan, > > ------- > >> [root@watricky mnt]# btrfs subvolume list / -a > >> ID 258 gen 4226 top level 384 path media/smbshare > :: > >> [root@watricky mnt]# btrfs subvolume list /home -a > >> ID 258 gen 4226 top level 5 path > <FS_TREE>/__active/media/smbshare4.snap > ------- > This is definitely a bug. Thanks for reporting. > > I have made some fair-assumptions, and have sent out the > patch[1] to fix this bug (ref this email thread). Could you > kindly test it and report the result ? > > [1] > [PATCH] Btrfs-progs: we need to have the string null terminated > > Thanks, Anand > > > On 01/23/2013 03:42 AM, Brendan Hide wrote: >> Linux watricky 3.6.11-1-ARCH #1 SMP PREEMPT Tue Dec 18 08:57:15 CET 2012 >> x86_64 GNU/Linux >> >> In working on a snapshot maintenance script I''ve noticed some odd >> behaviour. Note the smbshare path. I''ve put this into its own subvolume >> as I don''t plan on snapshotting it. >> >> In the first command''s output, this path is printed correctly, however >> in the second output it has "4.snap" appended, similar to the names of >> the snapshots I made 22 hours ago. >> >> If this is a documented issue with a fix then no worries. But if not and >> anyone wants me to check into any further specifics, please let me know. >> >> > [root@watricky mnt]# btrfs subvolume list / -a >> > ID 258 gen 4226 top level 384 path media/smbshare >> > ID 259 gen 4337 top level 384 path home >> > ID 384 gen 4321 top level 5 path <FS_TREE>/__active >> > ID 392 gen 4337 top level 384 path var >> > ID 393 gen 4267 top level 384 path usr >> > ID 428 gen 4267 top level 5 path >> <FS_TREE>/__snapshot/__active.20130121-23h44.snap >> > ID 429 gen 3980 top level 5 path >> <FS_TREE>/__snapshot/__active_home.20130121-23h45.snap >> > ID 430 gen 4043 top level 5 path >> <FS_TREE>/__snapshot/__active_var.20130121-23h45.snap >> > ID 431 gen 4267 top level 5 path >> <FS_TREE>/__snapshot/__active_usr.20130121-23h45.snap >> > [root@watricky mnt]# btrfs subvolume list /home -a >> > ID 258 gen 4226 top level 5 path >> <FS_TREE>/__active/media/smbshare4.snap >> > ID 259 gen 4337 top level 5 path <FS_TREE>/__active/home >> > ID 384 gen 4321 top level 5 path <FS_TREE>/__active >> > ID 392 gen 4337 top level 5 path <FS_TREE>/__active/var >> > ID 393 gen 4267 top level 5 path <FS_TREE>/__active/usr >> > ID 428 gen 4267 top level 5 path >> <FS_TREE>/__snapshot/__active.20130121-23h44.snap >> > ID 429 gen 3980 top level 5 path >> <FS_TREE>/__snapshot/__active_home.20130121-23h45.snap >> > ID 430 gen 4043 top level 5 path >> <FS_TREE>/__snapshot/__active_var.20130121-23h45.snap >> > ID 431 gen 4267 top level 5 path >> <FS_TREE>/__snapshot/__active_usr.20130121-23h45.snap >> > [root@watricky mnt]# >> >> Note that the only directly mounted share is __active, mounted at /. >>-- __________ Brendan Hide http://swiftspirit.co.za/ http://www.webafrica.co.za/?AFF1E97