Skip to content

xfs: patch queue for 3.11

Dave Chinner linux-xfs 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest60 patches 34 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/60xfs: update mount options documentationDocumentation/filesystems/xfs.txt+209 -1081 reply
2/60xfs: add pluging for bulkstat readaheadfs/xfs/xfs_itable.c+3 -01 reply
3/60xfs: plug directory buffer readaheadfs/xfs/xfs_dir2_leaf.c+3 -01 reply
4/60xfs: don't use speculative prealloc for small filesfs/xfs/xfs_iomap.c+13 -02 replies
5/60xfs: don't do IO when creating an new inodefs/xfs/xfs_inode.c+28 -81 reply
6/60xfs: xfs_ifree doesn't need to modify the inode bufferfs/xfs/xfs_inode.c+4 -281 reply
7/60xfs: Introduce ordered log vector supportfs/xfs/xfs_log.c fs/xfs/xfs_log.h fs/xfs/xfs_log_cil.c+70 -281 reply
8/60xfs: Introduce an ordered buffer itemfs/xfs/xfs_buf_item.c fs/xfs/xfs_buf_item.h fs/xfs/xfs_trace.h +2 more+87 -311 reply
9/60xfs: Inode create log itemsfs/xfs/Makefile fs/xfs/xfs_icreate_item.c fs/xfs/xfs_icreate_item.h +3 more+261 -21 reply
10/60xfs: Inode create transaction reservationsfs/xfs/xfs_trans.c+77 -411 reply
11/60xfs: Inode create item recoveryfs/xfs/xfs_ialloc.c fs/xfs/xfs_ialloc.h fs/xfs/xfs_log_recover.c+145 -141 reply
12/60xfs: Use inode create transactionfs/xfs/xfs_buf_item.c fs/xfs/xfs_ialloc.c+33 -111 reply
13/60xfs: remove local fork format handling from xfs_bmapi_write()fs/xfs/xfs_attr_leaf.c fs/xfs/xfs_bmap.c fs/xfs/xfs_bmap.h +1 more+98 -1240 replies
14/60xfs: move getdents code into it's own filefs/xfs/Makefile fs/xfs/xfs_dir2.c fs/xfs/xfs_dir2_block.c +4 more+664 -6290 replies
15/60xfs: reshuffle dir2 definitions around for userspacefs/xfs/xfs_bmap.c fs/xfs/xfs_da_btree.c fs/xfs/xfs_dir2.c +19 more+83 -640 replies
16/60xfs: split out attribute listing code into separate filefs/xfs/Makefile fs/xfs/xfs_attr.c fs/xfs/xfs_attr.h +2 more+658 -6160 replies
17/60xfs: split out attribute fork truncation code into separate filefs/xfs/Makefile fs/xfs/xfs_attr.c fs/xfs/xfs_attr_inactive.c +1 more+454 -4120 replies
18/60xfs: split out xfs inode operations into separate filefs/xfs/Makefile fs/xfs/xfs_inode.c fs/xfs/xfs_inode.h +2 more+2418 -23440 replies
19/60xfs: consolidate xfs_vnodeops.c into xfs_inode_ops.cfs/xfs/Makefile fs/xfs/xfs_acl.c fs/xfs/xfs_aops.c +24 more+1996 -19880 replies
20/60xfs: move xfs_getbmap to xfs_extent_ops.cfs/xfs/xfs_bmap.c fs/xfs/xfs_bmap.h fs/xfs/xfs_extent_ops.c +2 more+290 -2860 replies
21/60xfs: introduce xfs_sb.c for sharing with libxfsfs/xfs/Makefile fs/xfs/xfs_mount.c fs/xfs/xfs_mount.h +2 more+823 -7620 replies
22/60xfs: move xfs_trans_reservations to xfs_trans.hfs/xfs/xfs_acl.c fs/xfs/xfs_buf.c fs/xfs/xfs_discard.c +3 more+39 -430 replies
23/60xfs: sync minor header differences needed by userspace.fs/xfs/xfs_attr.c fs/xfs/xfs_attr_inactive.c fs/xfs/xfs_attr_leaf.c +12 more+49 -90 replies
24/60xfs: move xfs_bmap_punch_delalloc() to xfs_aops.cfs/xfs/xfs_aops.c fs/xfs/xfs_bmap.c fs/xfs/xfs_bmap.h+78 -790 replies
25/60xfs: split out transaction reservation codefs/xfs/Makefile fs/xfs/xfs_mount.h fs/xfs/xfs_trans.c +3 more+846 -7670 replies
26/60xfs: minor cleanupsfs/xfs/xfs_attr_leaf.c fs/xfs/xfs_attr_remote.c fs/xfs/xfs_bmap_btree.c +1 more+4 -240 replies
27/60xfs: fix issues that cause userspace warningsfs/xfs/xfs_attr_remote.c fs/xfs/xfs_bmap.c fs/xfs/xfs_da_btree.c +3 more+12 -130 replies
28/60xfs: consolidate xfs_rename.cfs/xfs/Makefile fs/xfs/xfs_inode_ops.c fs/xfs/xfs_rename.c+306 -3470 replies
29/60xfs: consolidate xfs_utils.cfs/xfs/Makefile fs/xfs/xfs_error.c fs/xfs/xfs_extent_ops.c +16 more+285 -3591 reply
30/60xfs: split out inode log item format definitionfs/xfs/xfs_inode.h fs/xfs/xfs_inode_item.h fs/xfs/xfs_inode_item_format.h+202 -1740 replies
31/60xfs: split out buf log item format definitionsfs/xfs/xfs_buf_item.h fs/xfs/xfs_buf_item_format.h+115 -960 replies
32/60xfs: move inode fork definitions to a new header filefs/xfs/Makefile fs/xfs/xfs_inode.c fs/xfs/xfs_inode.h +3 more+2101 -20210 replies
33/60xfs: move unrealted definitions out of xfs_inode.hfs/xfs/xfs_ialloc.c fs/xfs/xfs_icache.h fs/xfs/xfs_inode.h +1 more+15 -380 replies
34/60xfs: introduce xfs_inode_buf.c for inode buffer operationsfs/xfs/Makefile fs/xfs/xfs_inode.c fs/xfs/xfs_inode.h +2 more+498 -4400 replies
35/60xfs: start repopulating xfs_inode.[ch] with kernel codefs/xfs/xfs_inode.c fs/xfs/xfs_inode.h fs/xfs/xfs_inode_ops.c +1 more+545 -5020 replies
36/60xfs: move swap extent code to xfs_extent_opsfs/xfs/Makefile fs/xfs/xfs_dfrag.c fs/xfs/xfs_dfrag.h +5 more+434 -5120 replies
37/60xfs: split out inode log item format definitionfs/xfs/xfs_extfree_item.h fs/xfs/xfs_extfree_item_format.h+105 -860 replies
38/60xfs: separate dquot on disk format definitions out of xfs_quota.hfs/xfs/xfs_dquot_format.h fs/xfs/xfs_quota.h+134 -1120 replies
39/60xfs: separate icreate log format definitions from xfs_icreate_item.hfs/xfs/xfs_icreate_item.h fs/xfs/xfs_icreate_item_format.h+40 -210 replies
40/60xfs: don't special case shared superblock mountsfs/xfs/xfs_sb.h+0 -70 replies
41/60xfs: kill __KERNEL__ check for debug code in allocation codefs/xfs/xfs_alloc.c+3 -30 replies
42/60xfs: split out on-disk transaction definitionsfs/xfs/xfs_trans.c fs/xfs/xfs_trans.h fs/xfs/xfs_trans_format.h+243 -2180 replies
43/60xfs: remove __KERNEL__ from debug codefs/xfs/xfs_bmap.h fs/xfs/xfs_dir2_data.c fs/xfs/xfs_rtalloc.c+4 -40 replies
44/60xfs: remove __KERNEL__ check from xfs_dir2_leaf.cfs/xfs/xfs_dir2_leaf.c+0 -40 replies
45/60xfs: xfs_filestreams.h doesn't need __KERNEL__fs/xfs/xfs_filestream.h+0 -40 replies
46/60xfs: split out the remote symlink handlingfs/xfs/Makefile fs/xfs/xfs_symlink.c fs/xfs/xfs_symlink.h +2 more+267 -2110 replies
47/60xfs: separate out log format definitionsfs/xfs/xfs_log.h fs/xfs/xfs_log_format.h fs/xfs/xfs_log_priv.h +1 more+207 -2080 replies
48/60xfs: move kernel specific type definitions to xfs.hfs/xfs/xfs_linux.h fs/xfs/xfs_types.h+32 -360 replies
49/60xfs: make struct xfs_perag kernel onlyfs/xfs/xfs_acl.c fs/xfs/xfs_ag.h fs/xfs/xfs_mount.h +1 more+54 -530 replies
50/60xfs: create xfs_bmap_util.[ch]fs/xfs/Makefile fs/xfs/xfs_aops.c fs/xfs/xfs_attr.c +13 more+590 -4910 replies
51/60xfs: introduce xfs_quota_defs.hfs/xfs/xfs_quota.h fs/xfs/xfs_quota_defs.h+146 -1170 replies
52/60xfs: introduce xfs_rtalloc_defs.hfs/xfs/xfs_rtalloc.h fs/xfs/xfs_rtalloc_defs.h+74 -510 replies
53/60xfs: Introduce a new structure to hold transaction reservation itemsfs/xfs/xfs_mount.h fs/xfs/xfs_trans.c fs/xfs/xfs_trans_resv.c +1 more+163 -870 replies
54/60xfs: Introduce tr_fsyncts to m_reservationfs/xfs/xfs_trans_resv.c fs/xfs/xfs_trans_resv.h+3 -10 replies
55/60xfs: Make writeid transaction use tr_writeidfs/xfs/xfs_trans_resv.h+1 -10 replies
56/60xfs: refactor xfs_trans_reserve() interfacefs/xfs/xfs_aops.c fs/xfs/xfs_attr.c fs/xfs/xfs_attr_inactive.c +19 more+150 -1970 replies
57/60xfs: Get rid of all XFS_XXX_LOG_RES() macrofs/xfs/xfs_trans_resv.h+0 -360 replies
58/60xfs: Refactor xfs_ticket_alloc() to extract a new helperfs/xfs/xfs_log.c fs/xfs/xfs_log_format.h+42 -220 replies
59/60xfs: Add xfs_log_rlimit.cfs/xfs/Makefile fs/xfs/xfs_log_format.h fs/xfs/xfs_log_rlimit.c+153 -18 replies
60/60xfs: Validate log space at mount timefs/xfs/xfs_log.c+48 -10 replies

Reviews trailers per patch

12 of 60 patches have a Reviewed-by or Acked-by.

PatchBrian FosterMark Tinguely
1/60R-b
2/60R-b
3/60R-b
4/60R-b R-b
5/60R-b
6/60R-b
7/60R-b
8/60R-b
9/60R-b
10/60R-b
11/60R-b
12/60R-b
13/60
14/60
15/60
16/60
17/60
18/60
19/60
20/60
21/60
22/60
23/60
24/60
25/60
26/60
27/60
28/60
29/60
30/60
31/60
32/60
33/60
34/60
35/60
36/60
37/60
38/60
39/60
40/60
41/60
42/60
43/60
44/60
45/60
46/60
47/60
48/60
49/60
50/60
51/60
52/60
53/60
54/60
55/60
56/60
57/60
58/60
59/60
60/60

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCH 00/60] xfs: patch queue for 3.11

Hi Folks,

This is my patch queue for 3.11 as it stands right now.

The first 27 patches have been posted previously, and I've addressed these comments directly:

- non-debug static function prblems (Brian)
- agblock_t in xfs-ialloc.c (Brian)
- xfs-dir2_format.h changes reverted, now included before xfs_dir2.h (Christoph)
- rename xfs_aops_punch_delalloc_range() (Christoph)

The next set of patches then build on this and implement the first part of where the discussions went - the removal of __KERNEL__ from all the XFS code. This generally takes the form of:

- split on-disk format definitions into a separate header
- include the header in the original it came from
- share the new header file with userspace
- repeat until all definitions are split out and the only thing is left in the orignal header is #includes and ifdef __KERNEL__ sections.
- remove the ifdef __KERNEL__, as this header file is no longer shared with userspace.

The same process is done for the .c files, resulting in .c files that contain only kernel code or only code shared with libxfs in userspace.

This has resulted in some less than optimal code locality, mostly to do with xfs_inode_ops.c. The code is kernel only, and it's in that file because it all related to inode operatianos. However, some are internal core operations, some are interfaces that the VFS inode operations just wrap around, and some are related more closely to inode allocation than anything else. Hence more thought and effort needs to be put into factoring and merging this kernel code back into the most appropriate places, and that is work for a future release.

The final part of the patchset is a rebase of Jeff Liu's log size validation patch set. This calculates the minimum size of the log that we should have to guarantee that we don't end up with transactions being too large for the log. This is an issue because mkfs currently doesn't take into account the log stripe unit padding that is necessary when calculating the log size, and this can drive the size of transaction over the maximum size the log can safely support.

This code will warn on existing filesystems at mount time if the log is smaller than the minimum safe size, and for CRC enabled filesystems it will abort immediately as it is expected that you are using a mkfs binary that has this problem fixed.

Overall, there is a lot of code movement in the patch set. The tail of the diffstat looks like:

 113 files changed, 14734 insertions(+), 13221 deletions(-)
 create mode 100644 fs/xfs/xfs_attr_inactive.c
 create mode 100644 fs/xfs/xfs_attr_list.c
 create mode 100644 fs/xfs/xfs_bmap_util.c
 create mode 100644 fs/xfs/xfs_bmap_util.h
 create mode 100644 fs/xfs/xfs_buf_item_format.h
 delete mode 100644 fs/xfs/xfs_dfrag.c
 delete mode 100644 fs/xfs/xfs_dfrag.h
 create mode 100644 fs/xfs/xfs_dir2_readdir.c
 create mode 100644 fs/xfs/xfs_dquot_format.h
 create mode 100644 fs/xfs/xfs_extent_ops.c
 rename fs/xfs/{xfs_utils.h => xfs_extent_ops.h} (55%)
 create mode 100644 fs/xfs/xfs_extfree_item_format.h
 create mode 100644 fs/xfs/xfs_icreate_item.c
 create mode 100644 fs/xfs/xfs_icreate_item.h
 create mode 100644 fs/xfs/xfs_icreate_item_format.h
 create mode 100644 fs/xfs/xfs_inode_buf.c
 create mode 100644 fs/xfs/xfs_inode_buf.h
 create mode 100644 fs/xfs/xfs_inode_fork.c
 create mode 100644 fs/xfs/xfs_inode_fork.h
 create mode 100644 fs/xfs/xfs_inode_item_format.h
 create mode 100644 fs/xfs/xfs_inode_ops.c
 create mode 100644 fs/xfs/xfs_inode_ops.h
 create mode 100644 fs/xfs/xfs_log_format.h
 create mode 100644 fs/xfs/xfs_log_rlimit.c
 create mode 100644 fs/xfs/xfs_quota_defs.h
 delete mode 100644 fs/xfs/xfs_rename.c
 create mode 100644 fs/xfs/xfs_rtalloc_defs.h
 create mode 100644 fs/xfs/xfs_sb.c
 create mode 100644 fs/xfs/xfs_symlink_remote.c
 create mode 100644 fs/xfs/xfs_symlink_remote.h
 create mode 100644 fs/xfs/xfs_trans_format.h
 create mode 100644 fs/xfs/xfs_trans_resv.c
 create mode 100644 fs/xfs/xfs_trans_resv.h
 delete mode 100644 fs/xfs/xfs_utils.c
 delete mode 100644 fs/xfs/xfs_vnodeops.c
 delete mode 100644 fs/xfs/xfs_vnodeops.h

Which should give you an idea of the number of new files that have been added to split out shared userspace code, and hence an idea of how much ofthe diffstat is just moving stuff around. FWIW, this kills about 2000 lines of __KERNEL__ code in header files that is currently exported to userspace. You can see why I'm thinking a kernel fs/xfs/libxfs subdir might be a good idea. :)

Comments, flames, etc all welcome.

Cheers,

Dave.

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs