44
44
#include "xattr.h"
45
45
#include "lops.h"
46
46
47
- enum dinode_demise {
48
- SHOULD_DELETE_DINODE ,
49
- SHOULD_NOT_DELETE_DINODE ,
50
- SHOULD_DEFER_EVICTION ,
47
+ enum evict_behavior {
48
+ EVICT_SHOULD_DELETE ,
49
+ EVICT_SHOULD_SKIP_DELETE ,
50
+ EVICT_SHOULD_DEFER_DELETE ,
51
51
};
52
52
53
53
/**
@@ -1313,8 +1313,8 @@ static bool gfs2_upgrade_iopen_glock(struct inode *inode)
1313
1313
*
1314
1314
* Returns: the fate of the dinode
1315
1315
*/
1316
- static enum dinode_demise evict_should_delete (struct inode * inode ,
1317
- struct gfs2_holder * gh )
1316
+ static enum evict_behavior evict_should_delete (struct inode * inode ,
1317
+ struct gfs2_holder * gh )
1318
1318
{
1319
1319
struct gfs2_inode * ip = GFS2_I (inode );
1320
1320
struct super_block * sb = inode -> i_sb ;
@@ -1325,46 +1325,46 @@ static enum dinode_demise evict_should_delete(struct inode *inode,
1325
1325
goto should_delete ;
1326
1326
1327
1327
if (test_bit (GIF_DEFER_DELETE , & ip -> i_flags ))
1328
- return SHOULD_DEFER_EVICTION ;
1328
+ return EVICT_SHOULD_DEFER_DELETE ;
1329
1329
1330
1330
/* Deletes should never happen under memory pressure anymore. */
1331
1331
if (WARN_ON_ONCE (current -> flags & PF_MEMALLOC ))
1332
- return SHOULD_DEFER_EVICTION ;
1332
+ return EVICT_SHOULD_DEFER_DELETE ;
1333
1333
1334
1334
/* Must not read inode block until block type has been verified */
1335
1335
ret = gfs2_glock_nq_init (ip -> i_gl , LM_ST_EXCLUSIVE , GL_SKIP , gh );
1336
1336
if (unlikely (ret )) {
1337
1337
glock_clear_object (ip -> i_iopen_gh .gh_gl , ip );
1338
1338
ip -> i_iopen_gh .gh_flags |= GL_NOCACHE ;
1339
1339
gfs2_glock_dq_uninit (& ip -> i_iopen_gh );
1340
- return SHOULD_DEFER_EVICTION ;
1340
+ return EVICT_SHOULD_DEFER_DELETE ;
1341
1341
}
1342
1342
1343
1343
if (gfs2_inode_already_deleted (ip -> i_gl , ip -> i_no_formal_ino ))
1344
- return SHOULD_NOT_DELETE_DINODE ;
1344
+ return EVICT_SHOULD_SKIP_DELETE ;
1345
1345
ret = gfs2_check_blk_type (sdp , ip -> i_no_addr , GFS2_BLKST_UNLINKED );
1346
1346
if (ret )
1347
- return SHOULD_NOT_DELETE_DINODE ;
1347
+ return EVICT_SHOULD_SKIP_DELETE ;
1348
1348
1349
1349
ret = gfs2_instantiate (gh );
1350
1350
if (ret )
1351
- return SHOULD_NOT_DELETE_DINODE ;
1351
+ return EVICT_SHOULD_SKIP_DELETE ;
1352
1352
1353
1353
/*
1354
1354
* The inode may have been recreated in the meantime.
1355
1355
*/
1356
1356
if (inode -> i_nlink )
1357
- return SHOULD_NOT_DELETE_DINODE ;
1357
+ return EVICT_SHOULD_SKIP_DELETE ;
1358
1358
1359
1359
should_delete :
1360
1360
if (gfs2_holder_initialized (& ip -> i_iopen_gh ) &&
1361
1361
test_bit (HIF_HOLDER , & ip -> i_iopen_gh .gh_iflags )) {
1362
1362
if (!gfs2_upgrade_iopen_glock (inode )) {
1363
1363
gfs2_holder_uninit (& ip -> i_iopen_gh );
1364
- return SHOULD_NOT_DELETE_DINODE ;
1364
+ return EVICT_SHOULD_SKIP_DELETE ;
1365
1365
}
1366
1366
}
1367
- return SHOULD_DELETE_DINODE ;
1367
+ return EVICT_SHOULD_DELETE ;
1368
1368
}
1369
1369
1370
1370
/**
@@ -1475,6 +1475,7 @@ static void gfs2_evict_inode(struct inode *inode)
1475
1475
struct gfs2_sbd * sdp = sb -> s_fs_info ;
1476
1476
struct gfs2_inode * ip = GFS2_I (inode );
1477
1477
struct gfs2_holder gh ;
1478
+ enum evict_behavior behavior ;
1478
1479
int ret ;
1479
1480
1480
1481
if (inode -> i_nlink || sb_rdonly (sb ) || !ip -> i_no_addr )
@@ -1489,10 +1490,10 @@ static void gfs2_evict_inode(struct inode *inode)
1489
1490
goto out ;
1490
1491
1491
1492
gfs2_holder_mark_uninitialized (& gh );
1492
- ret = evict_should_delete (inode , & gh );
1493
- if (ret == SHOULD_DEFER_EVICTION )
1493
+ behavior = evict_should_delete (inode , & gh );
1494
+ if (behavior == EVICT_SHOULD_DEFER_DELETE )
1494
1495
goto out ;
1495
- if (ret == SHOULD_DELETE_DINODE )
1496
+ if (behavior == EVICT_SHOULD_DELETE )
1496
1497
ret = evict_unlinked_inode (inode );
1497
1498
else
1498
1499
ret = evict_linked_inode (inode );
0 commit comments