Although it may not be obvious from the patch contents, this patch simply moves function gfs2_ordered_wait before its sister function, gfs2_ordered_write. There are no changes to the code. This was done to make a follow-on patch more clear and easy to read.
Signed-off-by: Bob Peterson <rpete...@redhat.com> --- fs/gfs2/log.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/fs/gfs2/log.c b/fs/gfs2/log.c index 0248835625f1..bedd1c056ca2 100644 --- a/fs/gfs2/log.c +++ b/fs/gfs2/log.c @@ -530,44 +530,44 @@ static int ip_cmp(void *priv, struct list_head *a, struct list_head *b) return 0; } -static void gfs2_ordered_write(struct gfs2_sbd *sdp) +static void gfs2_ordered_wait(struct gfs2_sbd *sdp) { struct gfs2_inode *ip; - LIST_HEAD(written); spin_lock(&sdp->sd_ordered_lock); - list_sort(NULL, &sdp->sd_log_le_ordered, &ip_cmp); while (!list_empty(&sdp->sd_log_le_ordered)) { ip = list_entry(sdp->sd_log_le_ordered.next, struct gfs2_inode, i_ordered); - if (ip->i_inode.i_mapping->nrpages == 0) { - test_and_clear_bit(GIF_ORDERED, &ip->i_flags); - list_del(&ip->i_ordered); + list_del(&ip->i_ordered); + WARN_ON(!test_and_clear_bit(GIF_ORDERED, &ip->i_flags)); + if (ip->i_inode.i_mapping->nrpages == 0) continue; - } - list_move(&ip->i_ordered, &written); spin_unlock(&sdp->sd_ordered_lock); - filemap_fdatawrite(ip->i_inode.i_mapping); + filemap_fdatawait(ip->i_inode.i_mapping); spin_lock(&sdp->sd_ordered_lock); } - list_splice(&written, &sdp->sd_log_le_ordered); spin_unlock(&sdp->sd_ordered_lock); } -static void gfs2_ordered_wait(struct gfs2_sbd *sdp) +static void gfs2_ordered_write(struct gfs2_sbd *sdp) { struct gfs2_inode *ip; + LIST_HEAD(written); spin_lock(&sdp->sd_ordered_lock); + list_sort(NULL, &sdp->sd_log_le_ordered, &ip_cmp); while (!list_empty(&sdp->sd_log_le_ordered)) { ip = list_entry(sdp->sd_log_le_ordered.next, struct gfs2_inode, i_ordered); - list_del(&ip->i_ordered); - WARN_ON(!test_and_clear_bit(GIF_ORDERED, &ip->i_flags)); - if (ip->i_inode.i_mapping->nrpages == 0) + if (ip->i_inode.i_mapping->nrpages == 0) { + test_and_clear_bit(GIF_ORDERED, &ip->i_flags); + list_del(&ip->i_ordered); continue; + } + list_move(&ip->i_ordered, &written); spin_unlock(&sdp->sd_ordered_lock); - filemap_fdatawait(ip->i_inode.i_mapping); + filemap_fdatawrite(ip->i_inode.i_mapping); spin_lock(&sdp->sd_ordered_lock); } + list_splice(&written, &sdp->sd_log_le_ordered); spin_unlock(&sdp->sd_ordered_lock); } -- 2.17.0