summaryrefslogtreecommitdiff
path: root/fs/gfs2/export.c
diff options
context:
space:
mode:
authorAndreas Gruenbacher <agruenba@redhat.com>2020-01-14 16:59:08 +0300
committerAndreas Gruenbacher <agruenba@redhat.com>2020-06-05 21:19:21 +0300
commit9e73330f298acf544de72436b7bb825ff3aa1a54 (patch)
treed7a3fcd265d2b90b432398db215e7068ed453d0b /fs/gfs2/export.c
parent8c7b9262a8607636ecd7250f29c7aac17f08901c (diff)
downloadlinux-9e73330f298acf544de72436b7bb825ff3aa1a54.tar.xz
gfs2: Try harder to delete inodes locally
When an inode's link count drops to zero and the inode is cached on other nodes, the current behavior of gfs2 is to immediately give up and to rely on the other node(s) to delete the inode if there is iopen glock contention. This leads to resource group glock bouncing and the loss of caching. With the previous patches in place, we can fix that by not giving up immediately. When the inode is still open on other nodes, those nodes won't be able to evict the inode and give up the iopen glock. In that case, our lock conversion request will time out. The unlink system call will block for the duration of the iopen lock conversion request. We're also holding the inode glock in EX mode for an extended duration, so other nodes won't be able to make progress on the inode, either. This is worse than what we had before, but we can prevent other nodes from getting stuck by aborting our iopen locking request if there is contention on the inode glock. This will the the subject of a future patch. Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Diffstat (limited to 'fs/gfs2/export.c')
0 files changed, 0 insertions, 0 deletions