From: Goffredo Baroncelli <kreijack@gmail.com>
To: linux-btrfs@vger.kernel.org
Subject: Re: Snapshot mysteries (and an oops)
Date: Fri, 11 Dec 2009 20:40:18 +0100 [thread overview]
Message-ID: <200912112040.18415.kreijack@alice.it> (raw)
In-Reply-To: <cb0375e10912111116w284bfc33p3bc2bad00b20a9b1@mail.gmail.com>
Hi Andrew
On Friday 11 December 2009, Andrew Lutomirski wrote:
> Hi all-
>
> I'm a bit mystified by snapshots. I think that there are some bugs in
> btrfsctl at least (or maybe its documentation). There's definitely at
> least one bug in the kernel.
>
> Here's some commands I just tried (vanilla 2.6.32, btrfs-progs from
> git today. "test" is a brand-new empty btrfs filesystem, mounted with
> default options). Questions and comments are inline:
>
> [test]# mkdir dir2
> [test]# touch dir2/file2
> [test]# btrfsctl -s snap2 dir2
> operation complete
> Btrfs v0.19-4-gab8fb4c
> [test]# ls snap2
> dir2 snap1 subvol1
> [test]# ls snap2/snap1
> [test]#
>
> WTF? It looks like btrfsctl just snapshotted the subvolume containing
> dir2 instead of snapshotting the directory. I would have expected it
> to either snapshot just the directory or, if that's impossible, to
> fail.
It is possible to snapshot a (sub)volume only. I agree that nor the
documentation nor the UI is very clear about that.
> [test]# rm -rf snap1
> rm: cannot remove directory `snap1': Directory not empty
> [test]# ls snap1
> [test]#
>
> OK, so rmdir can't remove snapshots. (Is there any good reason for that?)
The volume is like a filesystem: you cannot remove a directory where is
mounted a filesystem
> [test]# btrfsctl -D snap1
> ioctl:: No such file or directory
> [test]# btrfsctl -D snap1 .
> operation complete
> Btrfs v0.19-4-gab8fb4c
>
> I can't make any sense of that. What's the second parameter to -D
> supposed to do?
>
> [test]# btrfsctl -D subvol1 .
> operation complete
> Btrfs v0.19-4-gab8fb4c
>
> Phew. That worked :)
Yes the docs may be improved. The syntax is:
btrfsctl -D <snapshotname> <directory>
<snapshotname> snapshot name
<directory> where the snapshot is
> [test]# rm -rf *
>
> OK, now I'm back to where I started.
>
> [test]# btrfsctl -S subvol2 .
> operation complete
> Btrfs v0.19-4-gab8fb4c
> [test]# touch subvol2/file
> [test]# ln subvol2/file file
> Segmentation fault
>
> Crap. I guess I wasn't supposed to try that. dmesg attached:
>
> Process ln (pid: 3153, threadinfo ffff880196940000, task ffff8801a4149780)
> Stack:
> 0000000000000000 ffff88017a741e00 ffff88018af585d0 000000000000000e
> <0> ffff880196941e28 ffff88018af585d0 ffff88017a741e00 ffff88017a7905d0
> <0> ffff88017e4b3680 ffff88017a790688 ffff880196941e78 ffffffff81105988
> Call Trace:
> [<ffffffff81105988>] vfs_link+0xd5/0x14a
>
> Thanks,
> Andy
> [<ffffffff811057e9>] ? lookup_hash+0x3b/0x3f
> [<ffffffff81107eb1>] sys_linkat+0xc4/0x121
> [<ffffffff8106af52>] ? up_read+0xe/0x10
> [<ffffffff8141d2a9>] ? do_page_fault+0x269/0x299
> [<ffffffff81095e6c>] ? audit_syscall_entry+0x11e/0x14a
> [<ffffffff81107f2c>] sys_link+0x1e/0x22
> [<ffffffff81011cf2>] system_call_fastpath+0x16/0x1b
> Code: ff 85 c0 41 89 c6 ba 01 00 00 00 75 39 49 8b 44 24 20 48 89 da
> 4c 89 fe 4c 89 e7 49 89 45 e0 e8 8f dc ff ff 85 c0 41 89 c6 74 04 <0f>
> 0b eb fe 48 8b 45 b8 31 d2 48 89 de 4c 89 e7 48 8b 48 28 e8
> RIP [<ffffffffa0bc4305>] btrfs_link+0xcf/0x144 [btrfs]
> RSP <ffff880196941dd8>
> ---[ end trace 95f0a8585b4e506f ]---
> --
> 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
>
BR
Goffredo
--
gpg key@ keyserver.linux.it: Goffredo Baroncelli (ghigo) <kreijackATinwind.it>
Key fingerprint = 4769 7E51 5293 D36C 814E C054 BF04 F161 3DC5 0512
next prev parent reply other threads:[~2009-12-11 19:40 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-11 19:16 Snapshot mysteries (and an oops) Andrew Lutomirski
2009-12-11 19:40 ` Goffredo Baroncelli [this message]
2009-12-12 18:37 ` Andy Lutomirski
2009-12-12 19:17 ` Goffredo Baroncelli
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=200912112040.18415.kreijack@alice.it \
--to=kreijack@gmail.com \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.