Skip to content

Commit 977767a

Browse files
author
Andreas Gruenbacher
committed
gfs2: Clean up gfs2_is_{ordered,writeback}
The gfs2_is_ordered and gfs2_is_writeback checks are weird in that they implicitly check for !gfs2_is_jdata. This makes understanding how to use those functions correctly a challenge. Clean this up by making gfs2_is_ordered and gfs2_is_writeback take a super block instead of an inode and by removing the implicit !gfs2_is_jdata checks. Update the callers accordingly. Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
1 parent 40e020c commit 977767a

File tree

3 files changed

+11
-14
lines changed

3 files changed

+11
-14
lines changed

fs/gfs2/aops.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -930,14 +930,14 @@ static const struct address_space_operations gfs2_jdata_aops = {
930930
void gfs2_set_aops(struct inode *inode)
931931
{
932932
struct gfs2_inode *ip = GFS2_I(inode);
933+
struct gfs2_sbd *sdp = GFS2_SB(inode);
933934

934-
if (gfs2_is_writeback(ip))
935+
if (gfs2_is_jdata(ip))
936+
inode->i_mapping->a_ops = &gfs2_jdata_aops;
937+
else if (gfs2_is_writeback(sdp))
935938
inode->i_mapping->a_ops = &gfs2_writeback_aops;
936-
else if (gfs2_is_ordered(ip))
939+
else if (gfs2_is_ordered(sdp))
937940
inode->i_mapping->a_ops = &gfs2_ordered_aops;
938-
else if (gfs2_is_jdata(ip))
939-
inode->i_mapping->a_ops = &gfs2_jdata_aops;
940941
else
941942
BUG();
942943
}
943-

fs/gfs2/inode.h

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,16 +30,14 @@ static inline int gfs2_is_jdata(const struct gfs2_inode *ip)
3030
return ip->i_diskflags & GFS2_DIF_JDATA;
3131
}
3232

33-
static inline int gfs2_is_writeback(const struct gfs2_inode *ip)
33+
static inline bool gfs2_is_ordered(const struct gfs2_sbd *sdp)
3434
{
35-
const struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode);
36-
return (sdp->sd_args.ar_data == GFS2_DATA_WRITEBACK) && !gfs2_is_jdata(ip);
35+
return sdp->sd_args.ar_data == GFS2_DATA_ORDERED;
3736
}
3837

39-
static inline int gfs2_is_ordered(const struct gfs2_inode *ip)
38+
static inline bool gfs2_is_writeback(const struct gfs2_sbd *sdp)
4039
{
41-
const struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode);
42-
return (sdp->sd_args.ar_data == GFS2_DATA_ORDERED) && !gfs2_is_jdata(ip);
40+
return sdp->sd_args.ar_data == GFS2_DATA_WRITEBACK;
4341
}
4442

4543
static inline int gfs2_is_dir(const struct gfs2_inode *ip)

fs/gfs2/log.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,11 @@ static inline void gfs2_log_pointers_init(struct gfs2_sbd *sdp,
5151

5252
static inline void gfs2_ordered_add_inode(struct gfs2_inode *ip)
5353
{
54-
struct gfs2_sbd *sdp;
54+
struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode);
5555

56-
if (!gfs2_is_ordered(ip))
56+
if (gfs2_is_jdata(ip) || !gfs2_is_ordered(sdp))
5757
return;
5858

59-
sdp = GFS2_SB(&ip->i_inode);
6059
if (!test_bit(GIF_ORDERED, &ip->i_flags)) {
6160
spin_lock(&sdp->sd_ordered_lock);
6261
if (!test_and_set_bit(GIF_ORDERED, &ip->i_flags))

0 commit comments

Comments
 (0)