linux/fs/gfs2
Steven Whitehouse 44aaada9d1 GFS2: Add meta readahead field in directory entries
The intent of this new field in the directory entry is to
allow a subsequent lookup to know how many blocks, which
are contiguous with the inode, contain metadata which relates
to the inode. This will then allow the issuing of a single
read to read these blocks, rather than reading the inode
first, and then issuing a second read for the metadata.

This only works under some fairly strict conditions, since
we do not have back pointers from inodes to directory entries
we must ensure that the blocks referenced in this way will
always belong to the inode.

This rules out being able to use this system for indirect
blocks, as these can change as a result of truncate/rewrite.

So the idea here is to restrict this to xattr blocks only
for the time being. For most inodes, that means only a
single block. Also, when using ACLs and/or SELinux or
other LSMs, these will be added at inode creation time
so that they will be contiguous with the inode on disk and
also will almost always be needed when we read the inode in
for permissions checks.

Once an xattr block for an inode is allocated, it will never
change until the inode is deallocated.

This patch adds the new field, a further patch will add the
readahead in due course.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2014-02-07 11:23:22 +00:00
..
acl.c gfs2: use generic posix ACL infrastructure 2014-01-25 23:58:22 -05:00
acl.h gfs2: use generic posix ACL infrastructure 2014-01-25 23:58:22 -05:00
aops.c GFS2: journal data writepages update 2014-02-06 15:47:47 +00:00
bmap.c GFS2: Add allocation parameters structure 2013-10-02 11:13:25 +01:00
bmap.h GFS2: New truncate sequence 2010-09-20 11:18:16 +01:00
dentry.c gfs2: use check_submounts_and_drop() 2013-09-05 16:23:51 -04:00
dir.c GFS2: Add meta readahead field in directory entries 2014-02-07 11:23:22 +00:00
dir.h GFS2: Remember directory insert point 2014-01-06 12:49:43 +00:00
export.c [readdir] constify ->actor 2013-06-29 12:57:05 +04:00
file.c GFS2: Lock i_mutex and use a local gfs2_holder for fallocate 2014-02-06 15:49:58 +00:00
gfs2.h [GFS2] Remove remote lock dropping code 2008-06-27 09:39:44 +01:00
glock.c GFS2: Don't use ENOBUFS when ENOMEM is the correct error code 2014-01-16 10:31:13 +00:00
glock.h GFS2: Don't use ENOBUFS when ENOMEM is the correct error code 2014-01-16 10:31:13 +00:00
glops.c GFS2: Don't use ENOBUFS when ENOMEM is the correct error code 2014-01-16 10:31:13 +00:00
glops.h GFS2: Fix AIL flush issue during fsync 2011-10-21 12:39:41 +01:00
incore.h GFS2: Don't use ENOBUFS when ENOMEM is the correct error code 2014-01-16 10:31:13 +00:00
inode.c GFS2: Allocate block for xattr at inode alloc time, if required 2014-02-04 15:45:11 +00:00
inode.h GFS2: Add atomic_open support 2013-06-14 11:17:15 +01:00
Kconfig Finally eradicate CONFIG_HOTPLUG 2013-06-03 14:20:18 -07:00
lock_dlm.c gfs2: endianness misannotations 2013-11-15 22:04:16 -05:00
log.c GFS2: Plug on AIL flush 2014-02-03 09:57:29 +00:00
log.h GFS2: aggressively issue revokes in gfs2_log_flush 2013-06-19 09:41:59 +01:00
lops.c Merge branch 'for-3.14/core' of git://git.kernel.dk/linux-block 2014-01-30 11:19:05 -08:00
lops.h GFS2: Eliminate gfs2_rg_lops 2013-06-05 09:50:40 +01:00
main.c GFS2: Use RCU/hlist_bl based hash for quotas 2014-01-14 19:27:56 +00:00
Makefile GFS2: Rename ops_inode.c to inode.c 2011-05-10 13:12:49 +01:00
meta_io.c GFS2: Use only a single address space for rgrps 2014-01-03 10:01:50 +00:00
meta_io.h GFS2: Move gfs2_sync_meta to lops.c 2013-08-19 17:26:32 +01:00
ops_fstype.c Merge branch 'for-3.14/core' of git://git.kernel.dk/linux-block 2014-01-30 11:19:05 -08:00
quota.c GFS2: Fix kbuild test robot reported warning 2014-01-15 12:57:25 +00:00
quota.h GFS2: Use RCU/hlist_bl based hash for quotas 2014-01-14 19:27:56 +00:00
recovery.c GFS2: fail mount if journal recovery fails 2012-01-11 09:24:48 +00:00
recovery.h gfs2: use workqueue instead of slow-work 2010-07-23 13:14:25 +02:00
rgrp.c GFS2: Allocate block for xattr at inode alloc time, if required 2014-02-04 15:45:11 +00:00
rgrp.h GFS2: Don't use ENOBUFS when ENOMEM is the correct error code 2014-01-16 10:31:13 +00:00
super.c GFS2: Only run logd and quota when mounted read/write 2014-01-14 19:28:25 +00:00
super.h GFS2: Clean up freeze code 2013-01-29 10:29:05 +00:00
sys.c GFS2: Remove obsolete quota tunable 2013-10-04 09:49:29 +01:00
sys.h GFS2: dlm based recovery coordination 2012-01-11 09:23:05 +00:00
trace_gfs2.h GFS2: Add origin indicator to glock demote tracing 2013-04-10 10:32:05 +01:00
trans.c GFS2: fix warning message 2013-06-19 21:29:19 +01:00
trans.h GFS2: Split gfs2_trans_add_bh() into two 2013-01-29 10:28:04 +00:00
util.c GFS2: Move gfs2_icbit_munge into quota.c 2013-10-02 14:47:02 +01:00
util.h GFS2: Move gfs2_icbit_munge into quota.c 2013-10-02 14:47:02 +01:00
xattr.c gfs2: use generic posix ACL infrastructure 2014-01-25 23:58:22 -05:00
xattr.h sanitize xattr handler prototypes 2009-12-16 12:16:49 -05:00