gfs2: Keep track of deleted inode generations in LVBs

When deleting an inode, keep track of the generation of the deleted inode in
the inode glock Lock Value Block (LVB).  When trying to delete an inode
remotely, check the last-known inode generation against the deleted inode
generation to skip duplicate remote deletes.  This avoids taking the resource
group glock in order to verify the block type.

Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
This commit is contained in:
Andreas Gruenbacher
2020-01-13 21:21:49 +01:00
parent 15f2547b41
commit f286d627ef
5 changed files with 32 additions and 1 deletions

View File

@@ -171,6 +171,12 @@ struct gfs2_rindex {
#define GFS2_RGF_NOALLOC 0x00000008
#define GFS2_RGF_TRIMMED 0x00000010
struct gfs2_inode_lvb {
__be32 ri_magic;
__be32 __pad;
__be64 ri_generation_deleted;
};
struct gfs2_rgrp_lvb {
__be32 rl_magic;
__be32 rl_flags;