This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, for-linus has been updated 510792e xfs: optimize the negative xattr caching d1166ec xfs: prevent against ioend livelocks in xfs_file_fsync 34951f5 xfs: flag all buffers as metadata 1c4f332 xfs: encapsulate a block of debug code d3ec484 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 4e34e71 fs: take the ACL checks to common code 826cae2 kill boilerplates around posix_acl_create_masq() bc26ab5 kill boilerplate around posix_acl_chmod_masq() 6311b10 xfs: cache negative ACLs if there is no attribute fork e77819e vfs: move ACL cache lookup into generic code 340a0a0 xfs: Fix wrong return value of xfs_file_aio_write bbd9d6f Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 df2e301 fs: Merge split strings 02c24a8 fs: push i_mutex and filemap_write_and_wait down into ->fsync() handlers 72c5052 fs: move inode_dio_done to the end_io handler 8daaa83 xfs: make use of new shrinker callout for the inode cache 7e40145 ->permission() sanitizing: don't pass flags to ->check_acl() 9c2c703 ->permission() sanitizing: pass MAY_NOT_BLOCK to ->check_acl() from 55fb25d5b39320242b41af894921f5cef0c7e293 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 510792ee29770a38dd409bf2b469ade2fea9eb52 Author: Christoph Hellwig <hch@xxxxxxxxxxxxx> Date: Tue Jul 26 15:07:29 2011 +0000 xfs: optimize the negative xattr caching Since the addition of file capabilities every write needs to read xattrs to check if we have any capabilities to clear. In Linux 3.0 Andi Kleen added a flag to cache the fact that we do not have any attributes on an inode. Make sure to already mark a file as not having any attributes when reading it from disk in case it doesn't even have an attribute fork. Based on an earlier patch from Andi Kleen. Signed-off-by: Christoph Hellwig <hch@xxxxxx> Signed-off-by: Alex Elder <aelder@xxxxxxx> commit d1166ec792c96b65e4c18cbc5985944b5309d838 Author: Christoph Hellwig <hch@xxxxxxxxxxxxx> Date: Tue Jul 26 15:07:11 2011 +0000 xfs: prevent against ioend livelocks in xfs_file_fsync We need to take some locks to prevent new ioends from coming in when we wait for all existing ones to go away. Up to Linux 3.0 that was done using the i_mutex held by the VFS fsync code, but now that we are called without it we need to take care of it ourselves. Use the I/O lock instead of i_mutex just like we do in other places. Signed-off-by: Christoph Hellwig <hch@xxxxxx> Signed-off-by: Alex Elder <aelder@xxxxxxx> commit 34951f5cb72b1e3a89a21581cb21e2d5b6a104a4 Author: Christoph Hellwig <hch@xxxxxxxxxxxxx> Date: Tue Jul 26 15:06:44 2011 +0000 xfs: flag all buffers as metadata Now that REQ_META bios aren't treated specially in the CFQ I/O schedule anymore, we can tag all buffers as metadata to make blktrace traces more meaningful. Note that we use buffers also to zero out partial blocks in the preallocation / hole punching code, and while they operate on data blocks the zeros written certainly aren't data. I think this case is borderline metadata enough to not bother special casing it. Signed-off-by: Christoph Hellwig <hch@xxxxxx> Signed-off-by: Alex Elder <aelder@xxxxxxx> commit 1c4f33296e8e79a6bbfffc8457d547ffc31d5dee Author: Alex Elder <aelder@xxxxxxx> Date: Mon Jul 18 18:14:09 2011 +0000 xfs: encapsulate a block of debug code Pull into a helper function some debug-only code that validates a xfs_da_blkinfo structure that's been read from disk. Signed-off-by: Alex Elder <aelder@xxxxxxx> Reviewed-by: Christoph Hellwig <hch@xxxxxxxxxxxxx> commit d3ec4844d449cf7af9e749f73ba2052fb7b72fc2 Merge: 0003230e8200699860f0b10af524dc47bf8aecad df2e301fee3c2c2a87592151397ad7699bb14c37 Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> Date: Mon Jul 25 13:56:39 2011 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (43 commits) fs: Merge split strings treewide: fix potentially dangerous trailing ';' in #defined values/expressions uwb: Fix misspelling of neighbourhood in comment net, netfilter: Remove redundant goto in ebt_ulog_packet trivial: don't touch files that are removed in the staging tree lib/vsprintf: replace link to Draft by final RFC number doc: Kconfig: `to be' -> `be' doc: Kconfig: Typo: square -> squared doc: Konfig: Documentation/power/{pm => apm-acpi}.txt drivers/net: static should be at beginning of declaration drivers/media: static should be at beginning of declaration drivers/i2c: static should be at beginning of declaration XTENSA: static should be at beginning of declaration SH: static should be at beginning of declaration MIPS: static should be at beginning of declaration ARM: static should be at beginning of declaration rcu: treewide: Do not use rcu_read_lock_held when calling rcu_dereference_check Update my e-mail address PCIe ASPM: forcedly -> forcibly gma500: push through device driver tree ... Fix up trivial conflicts: - arch/arm/mach-ep93xx/dma-m2p.c (deleted) - drivers/gpio/gpio-ep93xx.c (renamed and context nearby) - drivers/net/r8169.c (just context changes) commit 4e34e719e457f2e031297175410fc0bd4016a085 Author: Christoph Hellwig <hch@xxxxxx> Date: Sat Jul 23 17:37:31 2011 +0200 fs: take the ACL checks to common code Replace the ->check_acl method with a ->get_acl method that simply reads an ACL from disk after having a cache miss. This means we can replace the ACL checking boilerplate code with a single implementation in namei.c. Signed-off-by: Christoph Hellwig <hch@xxxxxx> Signed-off-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx> commit 826cae2f2b4d726b925f43bc208a571639da4761 Author: Al Viro <viro@xxxxxxxxxxxxxxxxxx> Date: Sat Jul 23 03:10:32 2011 -0400 kill boilerplates around posix_acl_create_masq() new helper: posix_acl_create(&acl, gfp, mode_p). Replaces acl with modified clone, on failure releases acl and replaces with NULL. Returns 0 or -ve on error. All callers of posix_acl_create_masq() switched. Signed-off-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx> commit bc26ab5f65ae41b71df86ea46df3c3833d1d8d83 Author: Al Viro <viro@xxxxxxxxxxxxxxxxxx> Date: Sat Jul 23 00:18:02 2011 -0400 kill boilerplate around posix_acl_chmod_masq() new helper: posix_acl_chmod(&acl, gfp, mode). Replaces acl with modified clone or with NULL if that has failed; returns 0 or -ve on error. All callers of posix_acl_chmod_masq() switched to that - they'd been doing exactly the same thing. Signed-off-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx> commit 6311b10800a4bdc3f2c85d01fb113cf49bb83770 Author: Christoph Hellwig <hch@xxxxxx> Date: Sat Jul 23 17:36:50 2011 +0200 xfs: cache negative ACLs if there is no attribute fork Always set up a negative ACL cache entry if the inode doesn't have an attribute fork. That behaves much better than doing this check inside ->check_acl. Signed-off-by: Christoph Hellwig <hch@xxxxxx> Signed-off-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx> commit e77819e57f0817c6dc7cadd061acd70c604cbce2 Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> Date: Fri Jul 22 19:30:19 2011 -0700 vfs: move ACL cache lookup into generic code This moves logic for checking the cached ACL values from low-level filesystems into generic code. The end result is a streamlined ACL check that doesn't need to load the inode->i_op->check_acl pointer at all for the common cached case. The filesystems also don't need to check for a non-blocking RCU walk case in their acl_check() functions, because that is all handled at a VFS layer. Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> Signed-off-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx> commit 340a0a01b9675a16201cc4fc4a210eb5b3bc11ce Author: Markus Trippelsdorf <markus@xxxxxxxxxxxxxxx> Date: Sun Jul 24 14:03:30 2011 +0200 xfs: Fix wrong return value of xfs_file_aio_write The fsync prototype change commit 02c24a82187d accidentally overwrote the ssize_t return value of xfs_file_aio_write with 0 for SYNC type writes. Fix this by checking if an error occured when calling xfs_file_fsync and only change the return value in this case. In addition xfs_file_fsync actually returns a normal negative error, so fix this, too. Signed-off-by: Markus Trippelsdorf <markus@xxxxxxxxxxxxxxx> Reviewed-by: Christoph Hellwig <hch@xxxxxx> Tested-by: Christoph Hellwig <hch@xxxxxx> Signed-off-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx> commit bbd9d6f7fbb0305c9a592bf05a32e87eb364a4ff Merge: 8e204874db000928e37199c2db82b7eb8966cc3c 5a9a43646cf709312d71eca71cef90ad802f28f9 Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> Date: Fri Jul 22 19:02:39 2011 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (107 commits) vfs: use ERR_CAST for err-ptr tossing in lookup_instantiate_filp isofs: Remove global fs lock jffs2: fix IN_DELETE_SELF on overwriting rename() killing a directory fix IN_DELETE_SELF on overwriting rename() on ramfs et.al. mm/truncate.c: fix build for CONFIG_BLOCK not enabled fs:update the NOTE of the file_operations structure Remove dead code in dget_parent() AFS: Fix silly characters in a comment switch d_add_ci() to d_splice_alias() in "found negative" case as well simplify gfs2_lookup() jfs_lookup(): don't bother with . or .. get rid of useless dget_parent() in btrfs rename() and link() get rid of useless dget_parent() in fs/btrfs/ioctl.c fs: push i_mutex and filemap_write_and_wait down into ->fsync() handlers drivers: fix up various ->llseek() implementations fs: handle SEEK_HOLE/SEEK_DATA properly in all fs's that define their own llseek Ext4: handle SEEK_HOLE/SEEK_DATA generically Btrfs: implement our own ->llseek fs: add SEEK_HOLE and SEEK_DATA flags reiserfs: make reiserfs default to barrier=flush ... Fix up trivial conflicts in fs/xfs/linux-2.6/xfs_super.c due to the new shrinker callout for the inode cache, that clashed with the xfs code to start the periodic workers later. commit df2e301fee3c2c2a87592151397ad7699bb14c37 Author: Jean Delvare <khali@xxxxxxxxxxxx> Date: Sat Jul 16 18:10:35 2011 +0200 fs: Merge split strings No idea why these were split in the first place... Signed-off-by: Jean Delvare <khali@xxxxxxxxxxxx> Signed-off-by: Jiri Kosina <jkosina@xxxxxxx> commit 02c24a82187d5a628c68edfe71ae60dc135cd178 Author: Josef Bacik <josef@xxxxxxxxxx> Date: Sat Jul 16 20:44:56 2011 -0400 fs: push i_mutex and filemap_write_and_wait down into ->fsync() handlers Btrfs needs to be able to control how filemap_write_and_wait_range() is called in fsync to make it less of a painful operation, so push down taking i_mutex and the calling of filemap_write_and_wait() down into the ->fsync() handlers. Some file systems can drop taking the i_mutex altogether it seems, like ext3 and ocfs2. For correctness sake I just pushed everything down in all cases to make sure that we keep the current behavior the same for everybody, and then each individual fs maintainer can make up their mind about what to do from there. Thanks, Acked-by: Jan Kara <jack@xxxxxxx> Signed-off-by: Josef Bacik <josef@xxxxxxxxxx> Signed-off-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx> commit 72c5052ddc3956d847f21c2b8d55c93664a51b2c Author: Christoph Hellwig <hch@xxxxxxxxxxxxx> Date: Fri Jun 24 14:29:48 2011 -0400 fs: move inode_dio_done to the end_io handler For filesystems that delay their end_io processing we should keep our i_dio_count until the the processing is done. Enable this by moving the inode_dio_done call to the end_io handler if one exist. Note that the actual move to the workqueue for ext4 and XFS is not done in this patch yet, but left to the filesystem maintainers. At least for XFS it's not needed yet either as XFS has an internal equivalent to i_dio_count. Signed-off-by: Christoph Hellwig <hch@xxxxxx> Signed-off-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx> commit 8daaa83145ef1f0a146680618328dbbd0fa76939 Author: Dave Chinner <dchinner@xxxxxxxxxx> Date: Fri Jul 8 14:14:46 2011 +1000 xfs: make use of new shrinker callout for the inode cache Convert the inode reclaim shrinker to use the new per-sb shrinker operations. This allows much bigger reclaim batches to be used, and allows the XFS inode cache to be shrunk in proportion with the VFS dentry and inode caches. This avoids the problem of the VFS caches being shrunk significantly before the XFS inode cache is shrunk resulting in imbalances in the caches during reclaim. Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx> Signed-off-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx> commit 7e40145eb111a5192e6d819f764db9d6828d1abb Author: Al Viro <viro@xxxxxxxxxxxxxxxxxx> Date: Mon Jun 20 19:12:17 2011 -0400 ->permission() sanitizing: don't pass flags to ->check_acl() not used in the instances anymore. Signed-off-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx> commit 9c2c703929e4c41210cfa6e3f599514421bab8dc Author: Al Viro <viro@xxxxxxxxxxxxxxxxxx> Date: Mon Jun 20 19:06:22 2011 -0400 ->permission() sanitizing: pass MAY_NOT_BLOCK to ->check_acl() Signed-off-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx> ----------------------------------------------------------------------- Summary of changes: fs/xfs/linux-2.6/xfs_acl.c | 80 ++++++++++-------------------------------- fs/xfs/linux-2.6/xfs_aops.c | 3 ++ fs/xfs/linux-2.6/xfs_buf.c | 3 ++ fs/xfs/linux-2.6/xfs_file.c | 18 ++++++---- fs/xfs/linux-2.6/xfs_iops.c | 19 +++++++--- fs/xfs/linux-2.6/xfs_super.c | 27 +++++++++----- fs/xfs/linux-2.6/xfs_sync.c | 71 ++++++++++++++----------------------- fs/xfs/linux-2.6/xfs_sync.h | 5 +-- fs/xfs/linux-2.6/xfs_trace.h | 2 +- fs/xfs/xfs_acl.h | 2 - fs/xfs/xfs_da_btree.c | 32 +++++++++++------ fs/xfs/xfs_dir2_node.c | 2 +- 12 files changed, 119 insertions(+), 145 deletions(-) hooks/post-receive -- XFS development tree _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs