From: Andreas Gruenbacher <agruenba@redhat.com>
To: gfs2@lists.linux.dev
Cc: Andreas Gruenbacher <agruenba@redhat.com>
Subject: [PATCH 07/16] gfs2: Rename dinode_demise to evict_behavior
Date: Thu, 26 Sep 2024 00:03:17 +0200 [thread overview]
Message-ID: <20240925220331.417856-8-agruenba@redhat.com> (raw)
In-Reply-To: <20240925220331.417856-1-agruenba@redhat.com>
Rename enum dinode_demise to evict_behavior and its items
SHOULD_DELETE_DINODE to EVICT_SHOULD_DELETE,
SHOULD_NOT_DELETE_DINODE to EVICT_SHOULD_SKIP_DELETE, and
SHOULD_DEFER_EVICTION to EVICT_SHOULD_DEFER_DELETE.
In gfs2_evict_inode(), add a separate variable of type enum
evict_behavior instead of implicitly casting to int.
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
---
fs/gfs2/super.c | 37 +++++++++++++++++++------------------
1 file changed, 19 insertions(+), 18 deletions(-)
diff --git a/fs/gfs2/super.c b/fs/gfs2/super.c
index 65aef2153b19..bfe822827bbd 100644
--- a/fs/gfs2/super.c
+++ b/fs/gfs2/super.c
@@ -44,10 +44,10 @@
#include "xattr.h"
#include "lops.h"
-enum dinode_demise {
- SHOULD_DELETE_DINODE,
- SHOULD_NOT_DELETE_DINODE,
- SHOULD_DEFER_EVICTION,
+enum evict_behavior {
+ EVICT_SHOULD_DELETE,
+ EVICT_SHOULD_SKIP_DELETE,
+ EVICT_SHOULD_DEFER_DELETE,
};
/**
@@ -1313,8 +1313,8 @@ static bool gfs2_upgrade_iopen_glock(struct inode *inode)
*
* Returns: the fate of the dinode
*/
-static enum dinode_demise evict_should_delete(struct inode *inode,
- struct gfs2_holder *gh)
+static enum evict_behavior evict_should_delete(struct inode *inode,
+ struct gfs2_holder *gh)
{
struct gfs2_inode *ip = GFS2_I(inode);
struct super_block *sb = inode->i_sb;
@@ -1325,11 +1325,11 @@ static enum dinode_demise evict_should_delete(struct inode *inode,
goto should_delete;
if (test_bit(GIF_DEFER_DELETE, &ip->i_flags))
- return SHOULD_DEFER_EVICTION;
+ return EVICT_SHOULD_DEFER_DELETE;
/* Deletes should never happen under memory pressure anymore. */
if (WARN_ON_ONCE(current->flags & PF_MEMALLOC))
- return SHOULD_DEFER_EVICTION;
+ return EVICT_SHOULD_DEFER_DELETE;
/* Must not read inode block until block type has been verified */
ret = gfs2_glock_nq_init(ip->i_gl, LM_ST_EXCLUSIVE, GL_SKIP, gh);
@@ -1337,34 +1337,34 @@ static enum dinode_demise evict_should_delete(struct inode *inode,
glock_clear_object(ip->i_iopen_gh.gh_gl, ip);
ip->i_iopen_gh.gh_flags |= GL_NOCACHE;
gfs2_glock_dq_uninit(&ip->i_iopen_gh);
- return SHOULD_DEFER_EVICTION;
+ return EVICT_SHOULD_DEFER_DELETE;
}
if (gfs2_inode_already_deleted(ip->i_gl, ip->i_no_formal_ino))
- return SHOULD_NOT_DELETE_DINODE;
+ return EVICT_SHOULD_SKIP_DELETE;
ret = gfs2_check_blk_type(sdp, ip->i_no_addr, GFS2_BLKST_UNLINKED);
if (ret)
- return SHOULD_NOT_DELETE_DINODE;
+ return EVICT_SHOULD_SKIP_DELETE;
ret = gfs2_instantiate(gh);
if (ret)
- return SHOULD_NOT_DELETE_DINODE;
+ return EVICT_SHOULD_SKIP_DELETE;
/*
* The inode may have been recreated in the meantime.
*/
if (inode->i_nlink)
- return SHOULD_NOT_DELETE_DINODE;
+ return EVICT_SHOULD_SKIP_DELETE;
should_delete:
if (gfs2_holder_initialized(&ip->i_iopen_gh) &&
test_bit(HIF_HOLDER, &ip->i_iopen_gh.gh_iflags)) {
if (!gfs2_upgrade_iopen_glock(inode)) {
gfs2_holder_uninit(&ip->i_iopen_gh);
- return SHOULD_NOT_DELETE_DINODE;
+ return EVICT_SHOULD_SKIP_DELETE;
}
}
- return SHOULD_DELETE_DINODE;
+ return EVICT_SHOULD_DELETE;
}
/**
@@ -1475,6 +1475,7 @@ static void gfs2_evict_inode(struct inode *inode)
struct gfs2_sbd *sdp = sb->s_fs_info;
struct gfs2_inode *ip = GFS2_I(inode);
struct gfs2_holder gh;
+ enum evict_behavior behavior;
int ret;
if (inode->i_nlink || sb_rdonly(sb) || !ip->i_no_addr)
@@ -1489,10 +1490,10 @@ static void gfs2_evict_inode(struct inode *inode)
goto out;
gfs2_holder_mark_uninitialized(&gh);
- ret = evict_should_delete(inode, &gh);
- if (ret == SHOULD_DEFER_EVICTION)
+ behavior = evict_should_delete(inode, &gh);
+ if (behavior == EVICT_SHOULD_DEFER_DELETE)
goto out;
- if (ret == SHOULD_DELETE_DINODE)
+ if (behavior == EVICT_SHOULD_DELETE)
ret = evict_unlinked_inode(inode);
else
ret = evict_linked_inode(inode);
--
2.46.0
next prev parent reply other threads:[~2024-09-25 22:03 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-25 22:03 [PATCH 00/16] gfs2: unlinked inodes Andreas Gruenbacher
2024-09-25 22:03 ` [PATCH 01/16] gfs2: Rename GLF_VERIFY_EVICT to GLF_VERIFY_DELETE Andreas Gruenbacher
2024-09-25 22:03 ` [PATCH 02/16] gfs2: Initialize gl_no_formal_ino earlier Andreas Gruenbacher
2024-09-25 22:03 ` [PATCH 03/16] gfs2: Allow immediate GLF_VERIFY_DELETE work Andreas Gruenbacher
2024-09-25 22:03 ` [PATCH 04/16] gfs2: Fix unlinked inode cleanup Andreas Gruenbacher
2024-09-25 22:03 ` [PATCH 05/16] gfs2: Faster gfs2_upgrade_iopen_glock wakeups Andreas Gruenbacher
2024-09-25 22:03 ` [PATCH 06/16] gfs2: Rename GIF_{DEFERRED -> DEFER}_DELETE Andreas Gruenbacher
2024-09-25 22:03 ` Andreas Gruenbacher [this message]
2024-09-25 22:03 ` [PATCH 08/16] gfs2: Return enum evict_behavior from gfs2_upgrade_iopen_glock Andreas Gruenbacher
2024-09-25 22:03 ` [PATCH 09/16] gfs2: Minor delete_work_func cleanup Andreas Gruenbacher
2024-09-25 22:03 ` [PATCH 10/16] gfs2: Clean up delete work processing Andreas Gruenbacher
2024-09-25 22:03 ` [PATCH 11/16] gfs2: Call gfs2_queue_verify_delete from gfs2_evict_inode Andreas Gruenbacher
2024-09-25 22:03 ` [PATCH 12/16] gfs2: Update to the evict / remote delete documentation Andreas Gruenbacher
2024-09-25 22:03 ` [PATCH 13/16] gfs2: Use mod_delayed_work in gfs2_queue_try_to_evict Andreas Gruenbacher
2024-09-25 22:03 ` [PATCH 14/16] gfs2: Randomize GLF_VERIFY_DELETE work delay Andreas Gruenbacher
2024-09-25 22:03 ` [PATCH 15/16] gfs2: Use get_random_u32 in gfs2_orlov_skip Andreas Gruenbacher
2024-09-25 22:03 ` [PATCH 16/16] gfs2: Make gfs2_inode_refresh static Andreas Gruenbacher
2024-09-26 12:18 ` [PATCH 00/16] gfs2: unlinked inodes Andrew Price
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240925220331.417856-8-agruenba@redhat.com \
--to=agruenba@redhat.com \
--cc=gfs2@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox