]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit
GFS2: Add meta readahead field in directory entries
authorSteven Whitehouse <swhiteho@redhat.com>
Fri, 7 Feb 2014 11:23:22 +0000 (11:23 +0000)
committerSteven Whitehouse <swhiteho@redhat.com>
Fri, 7 Feb 2014 11:23:22 +0000 (11:23 +0000)
commit44aaada9d144a46d3de48ad81093f69d17fae96f
treec3dbb51279c93ec2fad3464d1d93e115d9882599
parenta0846a534c5fbc40a08e2960a24bd0b8d647a840
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>
fs/gfs2/dir.c
include/uapi/linux/gfs2_ondisk.h