On Sun, Dec 27, 2009 at 3:34 PM, Lex "x-demon" Rivera <x-de...@x-demon.org> wrote: > Btrfs fails randomly, after this error in dmesg i can't exec any apps, > but can read/write to disc. Log attached, it's always the same, except > process that caused this. > > t fs/btrfs/ordered-data.c:672! > invalid opcode: 0000 [#1] PREEMPT SMP > last sysfs file: /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq > Modules linked in: ipv6 fuse aes_i586 aes_generic rfcomm sco bridge > stp llc bnep l2cap crc16 ext3 jbd mbcache arc4 ecb b43 btusb > snd_hda_codec_analog bluetooth snd_seq_dummy pciehp uvcvideo mac80211 > pci_hotplug videodev v4l1_compat cfg80211 snd_seq_oss rfkill > snd_seq_midi_event cpufreq_conservative snd_hda_intel iTCO_wdt ssb > snd_seq iTCO_vendor_support snd_hda_codec snd_seq_device joydev > snd_hwdep snd_pcm_oss snd_mixer_oss hp_accel snd_pcm mmc_core > lis3lv02d acpi_cpufreq snd_timer uhci_hcd snd ehci_hcd fan > input_polldev pcmcia soundcore sky2 usbcore led_class wmi > snd_page_alloc pcmcia_core evdev psmouse ac thermal battery serio_raw > pcspkr sg freq_table processor rtc_cmos rtc_core rtc_lib sd_mod > ata_piix ahci libata scsi_mod btrfs crc32c libcrc32c zlib_deflate lzo > lzo_decompress lzo_compress i915 drm_kms_helper drm i2c_algo_bit > button i2c_core video output intel_agp agpgart > > Pid: 15778, comm: iron Not tainted (2.6.32-ZEN #1) HP 2140 > EIP: 0060:[<f85bd96b>] EFLAGS: 00210287 CPU: 1 > EIP is at btrfs_ordered_update_i_size+0x40b/0x750 [btrfs] > EAX: 00006000 EBX: 00005e7d ECX: a40e8f80 EDX: 00000000 > ESI: 00000000 EDI: b2dc5684 EBP: 00000000 ESP: a3157e74 > DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068 > Process iron (pid: 15778, ti=a3156000 task=b68e6bd0 task.ti=a3156000) > Stack: > 00005e7c 00000000 00000020 00000000 00000000 22222222 22222222 b2dc5570 > <0> b2dc5550 00000000 b2dc55cc f858cd75 f6983000 00000000 00005e7d fffff000 > <0> b2dc5570 0000d000 00000000 a3157f34 00000000 b2dc5684 00000000 f85ac3f7 > Call Trace: > [<f858cd75>] ? __find_space_info+0x55/0x60 [btrfs] > [<f85ac3f7>] ? btrfs_setattr+0x1e7/0x310 [btrfs] > [<810f7324>] ? notify_change+0x134/0x320 > [<812b144c>] ? __mutex_lock_slowpath+0x1ec/0x2c0 > [<810e1721>] ? do_truncate+0x61/0x90 > [<810cf186>] ? mmap_region+0x1b6/0x450 > [<810e1842>] ? do_sys_ftruncate+0xf2/0x150 > [<810e18cd>] ? sys_ftruncate64+0x2d/0x40 > [<810039f3>] ? sysenter_do_call+0x12/0x28 > Code: 9c 00 00 00 85 c0 74 30 8b 50 bc 8d 48 b8 8b 40 b8 39 d6 72 23 > 77 04 39 c3 72 1d 03 41 10 13 51 14 39 d6 72 06 77 11 39 c3 73 0d <0f> > 0b 8d 76 00 eb fb 8d b6 00 00 00 00 8b 44 24 20 8b 88 98 00 > EIP: [<f85bd96b>] btrfs_ordered_update_i_size+0x40b/0x750 [btrfs] > SS:ESP 0068:a3157e74 > ---[ end trace 1adab407699b39c3 ]--- > > Thank you for reporting this. Please try patch attached below.
Yan, Zheng --- diff -urp 1/fs/btrfs/ordered-data.c 2/fs/btrfs/ordered-data.c --- 1/fs/btrfs/ordered-data.c 2009-12-28 12:23:42.088546898 +0800 +++ 2/fs/btrfs/ordered-data.c 2009-12-28 12:57:24.250542741 +0800 @@ -626,6 +626,8 @@ int btrfs_ordered_update_i_size(struct i if (ordered) offset = entry_end(ordered); + else + offset = ALIGN(offset, BTRFS_I(inode)->root->sectorsize); mutex_lock(&tree->mutex); disk_i_size = BTRFS_I(inode)->disk_i_size; --- -- 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