Re: [PATCH] quota: fix potential infinite loop

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed 01-11-17 18:40:45, zhangyi (F) wrote:
> In dquot_writeback_dquots(), we write back dquot from dirty dquots
> list. There is a potential infinite loop if ->write_dquot() failure
> and forget remove dquot from the list. This patch clear dirty bit
> anyway to avoid it.
> 
> Signed-off-by: zhangyi (F) <yi.zhang@xxxxxxxxxx>

Thanks. Added to my tree.

								Honza

> ---
>  fs/quota/dquot.c | 11 +++++++++--
>  1 file changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c
> index 52ad151..7ff0080 100644
> --- a/fs/quota/dquot.c
> +++ b/fs/quota/dquot.c
> @@ -644,8 +644,15 @@ int dquot_writeback_dquots(struct super_block *sb, int type)
>  			spin_unlock(&dq_list_lock);
>  			dqstats_inc(DQST_LOOKUPS);
>  			err = sb->dq_op->write_dquot(dquot);
> -			if (!ret && err)
> -				ret = err;
> +			if (err) {
> +				/*
> +				 * Clear dirty bit anyway to avoid infinite
> +				 * loop here.
> +				 */
> +				clear_dquot_dirty(dquot);
> +				if (!ret)
> +					ret = err;
> +			}
>  			dqput(dquot);
>  			spin_lock(&dq_list_lock);
>  		}
> -- 
> 2.9.5
> 
-- 
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR



[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux