]> git.baikalelectronics.ru Git - kernel.git/commit
GFS2: Use range based functions for rgrp sync/invalidation
authorSteven Whitehouse <swhiteho@redhat.com>
Fri, 6 Dec 2013 10:16:14 +0000 (10:16 +0000)
committerSteven Whitehouse <swhiteho@redhat.com>
Fri, 3 Jan 2014 10:00:31 +0000 (10:00 +0000)
commitcdf578e896f99c2c67c438964844a7fa0bc1ac57
tree25e3ce7a1dccb1784ca1b09f03a0382265b82370
parente0b9cc45fc99c3796b0467239de271795dbae96e
GFS2: Use range based functions for rgrp sync/invalidation

Each rgrp header is represented as a single extent on disk, so we
can calculate the position within the address space, since we are
using address spaces mapped 1:1 to the disk. This means that it
is possible to use the range based versions of filemap_fdatawrite/wait
and for invalidating the page cache.

Our eventual intent is to then be able to merge the address spaces
used for rgrps into a single address space, rather than to have
one for each glock, saving memory and reducing complexity.

Since during umount, the rgrp structures are disposed of before
the glocks, we need to store the extent information in the glock
so that is is available for a final invalidation. This patch uses
a field which is otherwise unused in rgrp glocks to do that, so
that we do not have to expand the size of a glock.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
fs/gfs2/glops.c
fs/gfs2/incore.h
fs/gfs2/rgrp.c