Skip to content
Commit 380f7c65 authored by Steven Whitehouse's avatar Steven Whitehouse
Browse files

GFS2: Resolve inode eviction and ail list interaction bug



This patch contains a few misc fixes which resolve a recently
reported issue. This patch has been a real team effort and has
received a lot of testing.

The first issue is that the ail lock needs to be held over a few
more operations. The lock thats added into gfs2_releasepage() may
possibly be a candidate for replacing with RCU at some future
point, but at this stage we've gone for the obvious fix.

The second issue is that gfs2_write_inode() can end up calling
a glock recursively when called from gfs2_evict_inode() via the
syncing code, so it needs a guard added.

The third issue is that we either need to not truncate the metadata
pages of inodes which have zero link count, but which we cannot
deallocate due to them still being in use by other nodes, or we need
to ensure that those pages have all made it through the journal and
ail lists first. This patch takes the former approach, but the
latter has also been tested and there is nothing to choose between
them performance-wise. So again, we could revise that decision
in the future.

Also, the inode eviction process is now better documented.

Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
Tested-by: default avatarBob Peterson <rpeterso@redhat.com>
Tested-by: default avatarAbhijith Das <adas@redhat.com>
Reported-by: default avatarBarry J. Marson <bmarson@redhat.com>
Reported-by: default avatarDavid Teigland <teigland@redhat.com>
parent 3942ae53
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment