[Cluster-devel] [GFS2 PATCH] gfs2: Trim the ordered write list in gfs2_ordered_write()

Steven Whitehouse swhiteho at redhat.com
Fri Dec 22 08:38:09 UTC 2017


Hi,

This looks good...

Acked-by: Steven Whitehouse <swhiteho at redhat.com>

Steve.



On 21/12/17 19:38, Abhi Das wrote:
> We iterate through the entire ordered writes list in
> gfs2_ordered_write() to write out inodes. It's a good
> place to try and shrink the list by throwing out inodes
> that don't have any pages.
>
> Signed-off-by: Abhi Das <adas at redhat.com>
> ---
>   fs/gfs2/log.c | 7 +++++--
>   1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/fs/gfs2/log.c b/fs/gfs2/log.c
> index f72c442..ab18d2c 100644
> --- a/fs/gfs2/log.c
> +++ b/fs/gfs2/log.c
> @@ -538,9 +538,12 @@ static void gfs2_ordered_write(struct gfs2_sbd *sdp)
>   	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_move(&ip->i_ordered, &written);
> -		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_fdatawrite(ip->i_inode.i_mapping);
>   		spin_lock(&sdp->sd_ordered_lock);




More information about the Cluster-devel mailing list