diff options
author | Andreas Gruenbacher <agruenba@redhat.com> | 2025-04-18 16:41:52 +0200 |
---|---|---|
committer | Andreas Gruenbacher <agruenba@redhat.com> | 2025-04-24 23:10:05 +0200 |
commit | 2c63986dd35fa9eb0d7d1530b5eb2244b7296e22 (patch) | |
tree | e9e2cc848b61cc559d6a1c56e9906650c5d85e93 /scripts/lib/kdoc/kdoc_files.py | |
parent | 0cc617a54dfe6b44624c9a03e2e11a24eb9bc720 (diff) |
gfs2: deallocate inodes in gfs2_create_inode
When creating and destroying inodes, we are relying on the inode hash
table to make sure that for a given inode number, only a single inode
will exist. We then link that inode to its inode and iopen glock and
let those glocks point back at the inode. However, when iget_failed()
is called, the inode is removed from the inode hash table before
gfs_evict_inode() is called, and uniqueness is no longer guaranteed.
Commit f1046a472b70 ("gfs2: gl_object races fix") was trying to work
around that problem by detaching the inode glock from the inode before
calling iget_failed(), but that broke the inode deallocation code in
gfs_evict_inode().
To fix that, deallocate partially created inodes in gfs2_create_inode()
instead of relying on gfs_evict_inode() for doing that.
This means that gfs2_evict_inode() and its helper functions will no
longer see partially created inodes, and so some simplifications are
possible there.
Fixes: 9ffa18884cce ("gfs2: gl_object races fix")
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Diffstat (limited to 'scripts/lib/kdoc/kdoc_files.py')
0 files changed, 0 insertions, 0 deletions