Re: [GIT PULL] Btrfs updates for 3.1

2011-07-11 Thread Josef Bacik
On 07/10/2011 08:20 PM, Mitch Harder wrote:
> On Sat, Jul 2, 2011 at 4:25 PM, Josef Bacik  wrote:
>> On 07/01/2011 04:39 PM, Josef Bacik wrote:
>>> Hey Chris,
>>>
>>> Since I'm going on vacation next week I wanted to get everything ready for 
>>> you
>>> in case you get bored with fsck and want to put together a 3.1 tree :).  If 
>>> you
>>> can pull
>>>
>>> git://git.kernel.org/pub/scm/linux/kernel/git/josef/btrfs-work.git for-chris
>>>
>>> It is based on your for-linus branch.  Here is the shortlog and diffstat
>>>
>>
>> Ugh sorry I had to update the don't panic patch because I'm an idiot.
>> Thanks,
>>
>> Josef
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
>> the body of a message to majord...@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
> 
> Josef:
> 
> I've been testing this series of patches in a 2.6.39.3 kernel merged
> with the latest 'for-linus' branch in Chris btrfs-unstable repository.
> 
> I'm getting a kernel BUG that looks like it could be attributed to the
> "Btrfs: try to only do one btrfs_search_slot in do_setxattr" patch.
> 
> [ 5959.860027] [ cut here ]
> [ 5959.860032] kernel BUG at include/linux/spinlock.h:380!
> [ 5959.860035] invalid opcode:  [#1] SMP
> [ 5959.860038] last sysfs file: /sys/kernel/uevent_seqnum
> [ 5959.860041] CPU 1
> [ 5959.860042] Modules linked in: snd_seq_midi nvidia(P) lgdt330x
> cx88_dvb cx88_vp3054_i2c videobuf_dvb snd_ens1371 tuner_simple
> tuner_types snd_rawmidi tda9887 tda8290 tuner cx8800 cx88_alsa cx8802
> snd_ac97_codec r8169 i2c_i801 cx88xx tveeprom videobuf_dma_sg
> btcx_risc videobuf_core ac97_bus
> [ 5959.860062]
> [ 5959.860065] Pid: 13521, comm: install Tainted: P
> 2.6.39.3-git-local-v10+ #1 Gigabyte Technology Co., Ltd.
> P35-DS3L/P35-DS3L
> [ 5959.860071] RIP: 0010:[]  []
> btrfs_assert_tree_locked+0x21/0x30
> [ 5959.860079] RSP: 0018:880005dffaf8  EFLAGS: 00010246
> [ 5959.860082] RAX: 3300 RBX: 88007be51b40 RCX: 
> 0001
> [ 5959.860084] RDX:  RSI: 880005dfe000 RDI: 
> 880025993900
> [ 5959.860087] RBP: 880005dffaf8 R08: 0001 R09: 
> 0001
> [ 5959.860089] R10:  R11:  R12: 
> 88005a8c2800
> [ 5959.860092] R13: 0001 R14: 000b R15: 
> 88003e41ebd0
> [ 5959.860095] FS:  7f495b017700() GS:88007fd0()
> knlGS:
> [ 5959.860098] CS:  0010 DS:  ES:  CR0: 80050033
> [ 5959.860100] CR2: 7f495afdc000 CR3: 3482b000 CR4: 
> 06e0
> [ 5959.860103] DR0:  DR1:  DR2: 
> 
> [ 5959.860106] DR3:  DR6: 0ff0 DR7: 
> 0400
> [ 5959.860109] Process install (pid: 13521, threadinfo
> 880005dfe000, task 880056aaac40)
> [ 5959.860111] Stack:
> [ 5959.860113]  880005dffb88 813536f7 88000343f000
> 8138add4
> [ 5959.860117]  880078546700 000b 0072
> 0001
> [ 5959.860122]  880005dffb88 00010001 
> 0efb0343f000
> [ 5959.860126] Call Trace:
> [ 5959.860132]  [] push_leaf_left+0xc7/0x190
> [ 5959.860136]  [] ? btrfs_item_size+0xe4/0xf0
> [ 5959.860140]  [] btrfs_del_items+0x39d/0x570
> [ 5959.860144]  [] btrfs_delete_one_dir_name+0xf9/0x100
> [ 5959.860148]  [] do_setxattr+0x191/0x1f0
> [ 5959.860152]  [] ? join_transaction.clone.24+0x21/0x220
> [ 5959.860156]  [] __btrfs_setxattr+0x93/0xf0
> [ 5959.860159]  [] btrfs_set_acl+0x103/0x230
> [ 5959.860163]  [] btrfs_acl_chmod+0xea/0xf0
> [ 5959.860167]  [] ? __mark_inode_dirty+0x68/0x200
> [ 5959.860171]  [] btrfs_setattr+0x9e/0xd0
> [ 5959.860175]  [] notify_change+0x189/0x370
> [ 5959.860179]  [] sys_fchmodat+0xcd/0x100
> [ 5959.860183]  [] ? do_munmap+0x2eb/0x360
> [ 5959.860187]  [] sys_chmod+0x18/0x20
> [ 5959.860191]  [] system_call_fastpath+0x16/0x1b
> [ 5959.860193] Code: 66 2e 0f 1f 84 00 00 00 00 00 55 48 89 e5 0f 1f
> 44 00 00 48 8b 47 38 a8 02 75 0e 8b 57 64 89 d0 c1 f8 08 31 d0 84 c0
> 74 02 c9 c3 <0f> 0b 90 90 90 90 90 90 90 90 90 90 90 90 90 55 48 89 e5
> 48 83
> [ 5959.860226] RIP  [] btrfs_assert_tree_locked+0x21/0x30
> [ 5959.860230]  RSP 
> [ 5959.860233] ---[ end trace 56253344f3b39a7c ]---
> 
> I'll try dropping the patch to confirm the source, but it's been an
> intermittent bug.  I haven't run across a simple way to reliably
> reproduce it.

Oh I see what's going on, if we're trying to overwrite an existing xattr
we will panic because I just take the path and try to delete the sucker,
but because the path was originally setup for insertion it unlocked the
parent's parent and boom.  I will fix this up, thanks for reporting it,

Josef
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.ker

Re: [GIT PULL] Btrfs updates for 3.1

2011-07-10 Thread Mitch Harder
On Sat, Jul 2, 2011 at 4:25 PM, Josef Bacik  wrote:
> On 07/01/2011 04:39 PM, Josef Bacik wrote:
>> Hey Chris,
>>
>> Since I'm going on vacation next week I wanted to get everything ready for 
>> you
>> in case you get bored with fsck and want to put together a 3.1 tree :).  If 
>> you
>> can pull
>>
>> git://git.kernel.org/pub/scm/linux/kernel/git/josef/btrfs-work.git for-chris
>>
>> It is based on your for-linus branch.  Here is the shortlog and diffstat
>>
>
> Ugh sorry I had to update the don't panic patch because I'm an idiot.
> Thanks,
>
> Josef
> --
> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

Josef:

I've been testing this series of patches in a 2.6.39.3 kernel merged
with the latest 'for-linus' branch in Chris btrfs-unstable repository.

I'm getting a kernel BUG that looks like it could be attributed to the
"Btrfs: try to only do one btrfs_search_slot in do_setxattr" patch.

[ 5959.860027] [ cut here ]
[ 5959.860032] kernel BUG at include/linux/spinlock.h:380!
[ 5959.860035] invalid opcode:  [#1] SMP
[ 5959.860038] last sysfs file: /sys/kernel/uevent_seqnum
[ 5959.860041] CPU 1
[ 5959.860042] Modules linked in: snd_seq_midi nvidia(P) lgdt330x
cx88_dvb cx88_vp3054_i2c videobuf_dvb snd_ens1371 tuner_simple
tuner_types snd_rawmidi tda9887 tda8290 tuner cx8800 cx88_alsa cx8802
snd_ac97_codec r8169 i2c_i801 cx88xx tveeprom videobuf_dma_sg
btcx_risc videobuf_core ac97_bus
[ 5959.860062]
[ 5959.860065] Pid: 13521, comm: install Tainted: P
2.6.39.3-git-local-v10+ #1 Gigabyte Technology Co., Ltd.
P35-DS3L/P35-DS3L
[ 5959.860071] RIP: 0010:[]  []
btrfs_assert_tree_locked+0x21/0x30
[ 5959.860079] RSP: 0018:880005dffaf8  EFLAGS: 00010246
[ 5959.860082] RAX: 3300 RBX: 88007be51b40 RCX: 0001
[ 5959.860084] RDX:  RSI: 880005dfe000 RDI: 880025993900
[ 5959.860087] RBP: 880005dffaf8 R08: 0001 R09: 0001
[ 5959.860089] R10:  R11:  R12: 88005a8c2800
[ 5959.860092] R13: 0001 R14: 000b R15: 88003e41ebd0
[ 5959.860095] FS:  7f495b017700() GS:88007fd0()
knlGS:
[ 5959.860098] CS:  0010 DS:  ES:  CR0: 80050033
[ 5959.860100] CR2: 7f495afdc000 CR3: 3482b000 CR4: 06e0
[ 5959.860103] DR0:  DR1:  DR2: 
[ 5959.860106] DR3:  DR6: 0ff0 DR7: 0400
[ 5959.860109] Process install (pid: 13521, threadinfo
880005dfe000, task 880056aaac40)
[ 5959.860111] Stack:
[ 5959.860113]  880005dffb88 813536f7 88000343f000
8138add4
[ 5959.860117]  880078546700 000b 0072
0001
[ 5959.860122]  880005dffb88 00010001 
0efb0343f000
[ 5959.860126] Call Trace:
[ 5959.860132]  [] push_leaf_left+0xc7/0x190
[ 5959.860136]  [] ? btrfs_item_size+0xe4/0xf0
[ 5959.860140]  [] btrfs_del_items+0x39d/0x570
[ 5959.860144]  [] btrfs_delete_one_dir_name+0xf9/0x100
[ 5959.860148]  [] do_setxattr+0x191/0x1f0
[ 5959.860152]  [] ? join_transaction.clone.24+0x21/0x220
[ 5959.860156]  [] __btrfs_setxattr+0x93/0xf0
[ 5959.860159]  [] btrfs_set_acl+0x103/0x230
[ 5959.860163]  [] btrfs_acl_chmod+0xea/0xf0
[ 5959.860167]  [] ? __mark_inode_dirty+0x68/0x200
[ 5959.860171]  [] btrfs_setattr+0x9e/0xd0
[ 5959.860175]  [] notify_change+0x189/0x370
[ 5959.860179]  [] sys_fchmodat+0xcd/0x100
[ 5959.860183]  [] ? do_munmap+0x2eb/0x360
[ 5959.860187]  [] sys_chmod+0x18/0x20
[ 5959.860191]  [] system_call_fastpath+0x16/0x1b
[ 5959.860193] Code: 66 2e 0f 1f 84 00 00 00 00 00 55 48 89 e5 0f 1f
44 00 00 48 8b 47 38 a8 02 75 0e 8b 57 64 89 d0 c1 f8 08 31 d0 84 c0
74 02 c9 c3 <0f> 0b 90 90 90 90 90 90 90 90 90 90 90 90 90 55 48 89 e5
48 83
[ 5959.860226] RIP  [] btrfs_assert_tree_locked+0x21/0x30
[ 5959.860230]  RSP 
[ 5959.860233] ---[ end trace 56253344f3b39a7c ]---

I'll try dropping the patch to confirm the source, but it's been an
intermittent bug.  I haven't run across a simple way to reliably
reproduce it.
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [GIT PULL] Btrfs updates for 3.1

2011-07-02 Thread Josef Bacik
On 07/01/2011 04:39 PM, Josef Bacik wrote:
> Hey Chris,
> 
> Since I'm going on vacation next week I wanted to get everything ready for you
> in case you get bored with fsck and want to put together a 3.1 tree :).  If 
> you
> can pull
> 
> git://git.kernel.org/pub/scm/linux/kernel/git/josef/btrfs-work.git for-chris
> 
> It is based on your for-linus branch.  Here is the shortlog and diffstat
> 

Ugh sorry I had to update the don't panic patch because I'm an idiot.
Thanks,

Josef
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[GIT PULL] Btrfs updates for 3.1

2011-07-01 Thread Josef Bacik
Hey Chris,

Since I'm going on vacation next week I wanted to get everything ready for you
in case you get bored with fsck and want to put together a 3.1 tree :).  If you
can pull

git://git.kernel.org/pub/scm/linux/kernel/git/josef/btrfs-work.git for-chris

It is based on your for-linus branch.  Here is the shortlog and diffstat

Josef Bacik (7):
  Btrfs: try to only do one btrfs_search_slot in do_setxattr
  Btrfs: do transaction space reservation before joining the transaction
  Btrfs: serialize flushers in reserve_metadata_bytes
  Btrfs: use the normal checksumming infrastructure for free space cache
  Btrfs: fix how we merge extent states and deal with cached states
  Btrfs: use a worker thread to do caching
  Btrfs: don't panic if we get an error while balancing

 fs/btrfs/ctree.h|   10 ++-
 fs/btrfs/dir-item.c |9 +--
 fs/btrfs/disk-io.c  |6 ++
 fs/btrfs/extent-tree.c  |  136 +--
 fs/btrfs/extent_io.c|   23 +++---
 fs/btrfs/free-space-cache.c |  169 +++
 fs/btrfs/transaction.c  |   36 +-
 fs/btrfs/volumes.c  |3 +-
 fs/btrfs/xattr.c|   54 +++---
 9 files changed, 196 insertions(+), 250 deletions(-)

Thanks,

Josef
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html