Hi everyone, This has the rest of the btrfs cleanups for 3.1. The bulk of this is error handing fixes from SUSE and cleanups from Fujitsu. Josef figured out that my attempts to optimize writepage were actually doing much more IO than we needed to, so this simplifies our writepage code to only write the one page we were sent. Linus, the btrfs-unstable tree has two branches to choose from: git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable.git for-linus or git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable.git for-linus-merged There were minor conflicts in the acl cleanup and the btrfs writepage function. for-linus-merged has my merge, while for-linus is unmerged against 3.0. Li Zefan (11) commits (+98/-355): Btrfs: make acl functions really no-op if acl is not enabled (+15/-21) Btrfs: check the nodatasum flag when writing compressed files (+10/-4) Btrfs: remove a BUG_ON() in btrfs_commit_transaction() (+2/-4) Btrfs: remove redundant code for dir item lookup (+2/-28) Btrfs: copy string correctly in INO_LOOKUP ioctl (+1/-2) Btrfs: clean up code for merging extent maps (+21/-38) Btrfs: clean up code for extent_map lookup (+29/-56) Btrfs: clean up search_extent_mapping() (+3/-14) Btrfs: remove remaining ref-cache code (+0/-120) Btrfs: fix readahead in file defrag (+8/-16) Btrfs: use wait_event() (+7/-52) Mark Fasheh (8) commits (+82/-34): btrfs: Don''t BUG_ON alloc_path errors in btrfs_truncate_inode_items (+5/-4) btrfs: Don''t BUG_ON alloc_path errors in btrfs_read_locked_inode (+17/-5) btrfs: don''t BUG_ON allocation errors in btrfs_drop_snapshot (+6/-2) btrfs: Don''t BUG_ON alloc_path errors in replay_one_buffer() (+9/-3) btrfs: Don''t BUG_ON alloc_path errors in find_next_chunk (+8/-2) btrfs: Don''t BUG_ON alloc_path errors in btrfs_balance() (+4/-2) btrfs: don''t BUG_ON btrfs_alloc_path() errors (+29/-11) btrfs: make btrfs_set_root_node void (+4/-5) Xiao Guangrong (4) commits (+30/-52): Btrfs: remove unused members from struct extent_state (+0/-2) Btrfs: clean up for find_first_extent_bit() (+24/-40) Btrfs: clean up for wait_extent_bit() (+1/-5) Btrfs: clean up for insert_state() (+5/-5) Josef Bacik (2) commits (+3/-11): Btrfs: don''t call writepages from within write_full_page (+0/-10) Btrfs: don''t print the leaf if we had an error (+3/-1) Jeff Mahoney (1) commits (+34/-62): btrfs: Make extent-io callbacks that never fail return void Wanlong Gao (1) commits (+5/-6): Btrfs:don''t check the return value of __btrfs_add_inode_defrag Mitch Harder (1) commits (+2/-5): Btrfs: Remove unused variable ''last_index'' in file.c Tsutomu Itoh (1) commits (+9/-4): Btrfs: return error to caller when btrfs_unlink() failes liubo (1) commits (+3/-1): Btrfs: fix oops while writing data to SSD partitions WuBo (1) commits (+7/-3): Btrfs: Protect the readonly flag of block group Total: (31) commits fs/btrfs/Makefile | 4 +- fs/btrfs/acl.c | 17 ----- fs/btrfs/compression.c | 14 +++- fs/btrfs/ctree.h | 30 +++++++--- fs/btrfs/dir-item.c | 30 +--------- fs/btrfs/extent-tree.c | 45 +++++++++++---- fs/btrfs/extent_io.c | 140 +++++++++++++------------------------------ fs/btrfs/extent_io.h | 20 +++---- fs/btrfs/extent_map.c | 155 +++++++++++++++-------------------------------- fs/btrfs/file-item.c | 7 ++- fs/btrfs/file.c | 21 +++---- fs/btrfs/inode.c | 98 ++++++++++++++++-------------- fs/btrfs/ioctl.c | 3 +- fs/btrfs/ref-cache.c | 68 --------------------- fs/btrfs/ref-cache.h | 52 ---------------- fs/btrfs/root-tree.c | 5 +- fs/btrfs/transaction.c | 65 +++----------------- fs/btrfs/tree-log.c | 12 +++- fs/btrfs/volumes.c | 12 +++- 19 files changed, 269 insertions(+), 529 deletions(-) -- 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
* Chris Mason <chris.mason@oracle.com> wrote:> Hi everyone, > > This has the rest of the btrfs cleanups for 3.1. The bulk of this is > error handing fixes from SUSE and cleanups from Fujitsu.I havent seen a lkml mail of this pull request: 5c80c71b9a0e: Merge branch ''for-linus'' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable so i''m following up on this earlier pull request. the aptly named btrfs-unstable branch indeed does not even build on x86 defconfig (32-bit): LD .tmp_vmlinux1 fs/built-in.o: In function `btrfs_can_relocate'': (.text+0x1d6605): undefined reference to `__udivdi3'' make: *** [.tmp_vmlinux1] Error 1 and given that most of the commits: 81d86e1b7096: Merge branch ''btrfs-3.0'' into for-linus f1e490a7ebe4: Btrfs: set i_size properly when fallocating and we already 9a4327ca1f45: btrfs: unlock on error in btrfs_file_llseek() cb6db4e57632: btrfs: btrfs_permission''s RO check shouldn''t apply to device nodes f81c9cdc567c: Btrfs: truncate pages from clone ioctl target range 0e588859618b: Btrfs: fix uninitialized sync_pending bb3ac5a4dfc8: Btrfs: fix wrong free space information f4ac904c411b: btrfs: memory leak in btrfs_add_inode_defrag() c97c2916e25c: Btrfs: use plain page_address() in header fields setget functions cb1b69f4508a: Btrfs: forced readonly when btrfs_drop_snapshot() fails cdcb725c05fe: Btrfs: check if there is enough space for balancing smarter 38c01b960592: Btrfs: fix a bug of balance on full multi-disk partitions 34f3e4f23ca3: Btrfs: fix an oops of log replay d5e2003c2bcd: Btrfs: detect wether a device supports discard 93ee7a9340d6: Linux 3.1-rc2 were committed after -rc2 and were at most a couple of hours old before you sent them off to Linus, did you really expect any other outcome than breaking upstream in trivial ways? :-) Thanks, Ingo -- 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
Ingo Molnar
2011-Aug-19 13:18 UTC
Re: [build breakage] Re: [GIT PULL] Btrfs pull round two
* Ingo Molnar <mingo@kernel.org> wrote:> the aptly named btrfs-unstable branch indeed does not even build on > x86 defconfig (32-bit): > > LD .tmp_vmlinux1 > fs/built-in.o: In function `btrfs_can_relocate'': > (.text+0x1d6605): undefined reference to `__udivdi3'' > make: *** [.tmp_vmlinux1] Error 1Config attached. Thanks, Ingo
On Fri, Aug 19, 2011 at 9:06 AM, Ingo Molnar <mingo@kernel.org> wrote:> > * Chris Mason <chris.mason@oracle.com> wrote: > >> Hi everyone, >> >> This has the rest of the btrfs cleanups for 3.1. The bulk of this is >> error handing fixes from SUSE and cleanups from Fujitsu. > > I havent seen a lkml mail of this pull request: > > 5c80c71b9a0e: Merge branch ''for-linus'' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable > > so i''m following up on this earlier pull request. > > the aptly named btrfs-unstable branch indeed does not even build on > x86 defconfig (32-bit): > > LD .tmp_vmlinux1 > fs/built-in.o: In function `btrfs_can_relocate'': > (.text+0x1d6605): undefined reference to `__udivdi3'' > make: *** [.tmp_vmlinux1] Error 1 > > and given that most of the commits: > > 81d86e1b7096: Merge branch ''btrfs-3.0'' into for-linus > f1e490a7ebe4: Btrfs: set i_size properly when fallocating and we already > 9a4327ca1f45: btrfs: unlock on error in btrfs_file_llseek() > cb6db4e57632: btrfs: btrfs_permission''s RO check shouldn''t apply to device nodes > f81c9cdc567c: Btrfs: truncate pages from clone ioctl target range > 0e588859618b: Btrfs: fix uninitialized sync_pending > bb3ac5a4dfc8: Btrfs: fix wrong free space information > f4ac904c411b: btrfs: memory leak in btrfs_add_inode_defrag() > c97c2916e25c: Btrfs: use plain page_address() in header fields setget functions > cb1b69f4508a: Btrfs: forced readonly when btrfs_drop_snapshot() fails > cdcb725c05fe: Btrfs: check if there is enough space for balancing smarter > 38c01b960592: Btrfs: fix a bug of balance on full multi-disk partitions > 34f3e4f23ca3: Btrfs: fix an oops of log replay > d5e2003c2bcd: Btrfs: detect wether a device supports discard > 93ee7a9340d6: Linux 3.1-rc2 > > were committed after -rc2 and were at most a couple of hours old > before you sent them off to Linus, did you really expect any other > outcome than breaking upstream in trivial ways? :-)FYI, this was noticed and a patch was posted to linux-btrfs: http://thread.gmane.org/gmane.comp.file-systems.btrfs/12673 Josef bugged them to send it upstream. josh
Linus Torvalds
2011-Aug-19 15:14 UTC
Re: [build breakage] Re: [GIT PULL] Btrfs pull round two
On Fri, Aug 19, 2011 at 6:24 AM, Josh Boyer <jwboyer@gmail.com> wrote:> > FYI, this was noticed and a patch was posted to linux-btrfs: > > http://thread.gmane.org/gmane.comp.file-systems.btrfs/12673 > > Josef bugged them to send it upstream.Oh Christ! Please don''t send that upstream. This: - min_free /= 2; + do_div(min_free, 2); is just moronic. Guys, YOU ARE DIVIDING A UNSIGNED VALUE BY TWO. Has anybody ever looked at a real computer? Doesn''t anybody know how computer math works any more? Doing that as a (slow) double division on 32-bit is so stupid that it''s past even just "wrong". It''s way off in la-la-land, sitting in a corner, all hopped up on drugs and painting its nails purple. Also, the change that is definitely correct: - min_free /= dev_min; + do_div(min_free, dev_min); should still be something that people think about. Why is "dev_min" a signed integer? That looks wrong. You wanted an unsigned divide, didn''t you (and that is what "do_div()" is designed for). So guys, please: when you get an error like this, don''t just go into that mindless place where you paper things over. Think about what is going on, and WHY you got the error. Big 64-bit divides are bad bad bad. They are so horrendously bad on 32-bit that we don''t even support them (which is the reason I refuse to put that __udiv into the 32-bit libraries), but that are often bad on 64-bit too. So you need to spend some time thinking about it when you get that __udivdi3 error. Linus