On Wed 29-11-17 15:23:52, Luis R. Rodriguez wrote:
> This removes superflous freezer calls as they are no longer needed
> as the VFS now performs filesystem freezing/thaw if the filesystem has
> support for it.
> 
> The following Coccinelle rule was used as follows:
> 
> spatch --sp-file fs-freeze-cleanup.cocci --in-place fs/$FS/

I think your rule misses WQ_FREEZABLE flag for workqueues? That would be
also good to get rid of...

                                                                Honza

> 
> @ has_freeze_fs @
> identifier super_ops;
> expression freeze_op;
> @@
> 
> struct super_operations super_ops = {
>       .freeze_fs = freeze_op,
> };
> 
> @ remove_set_freezable depends on has_freeze_fs @
> expression time;
> statement S, S2, S3;
> expression task;
> @@
> 
> (
> -     set_freezable();
> |
> -     if (try_to_freeze())
> -             continue;
> |
> -     try_to_freeze();
> |
> -     freezable_schedule();
> +     schedule();
> |
> -     freezable_schedule_timeout(time);
> +     schedule_timeout(time);
> |
> -     if (freezing(task)) { S }
> |
> -     if (freezing(task)) { S }
> -     else
>       { S2 }
> |
> -     freezing(current)
> )
> 
> Generated-by: Coccinelle SmPL
> Signed-off-by: Luis R. Rodriguez <mcg...@kernel.org>
> ---
>  fs/xfs/xfs_trans_ail.c | 7 ++-----
>  1 file changed, 2 insertions(+), 5 deletions(-)
> 
> diff --git a/fs/xfs/xfs_trans_ail.c b/fs/xfs/xfs_trans_ail.c
> index cef89f7127d3..1f3dd10a9d00 100644
> --- a/fs/xfs/xfs_trans_ail.c
> +++ b/fs/xfs/xfs_trans_ail.c
> @@ -513,7 +513,6 @@ xfsaild(
>       long            tout = 0;       /* milliseconds */
>  
>       current->flags |= PF_MEMALLOC;
> -     set_freezable();
>  
>       while (1) {
>               if (tout && tout <= 20)
> @@ -551,19 +550,17 @@ xfsaild(
>               if (!xfs_ail_min(ailp) &&
>                   ailp->xa_target == ailp->xa_target_prev) {
>                       spin_unlock(&ailp->xa_lock);
> -                     freezable_schedule();
> +                     schedule();
>                       tout = 0;
>                       continue;
>               }
>               spin_unlock(&ailp->xa_lock);
>  
>               if (tout)
> -                     freezable_schedule_timeout(msecs_to_jiffies(tout));
> +                     schedule_timeout(msecs_to_jiffies(tout));
>  
>               __set_current_state(TASK_RUNNING);
>  
> -             try_to_freeze();
> -
>               tout = xfsaild_push(ailp);
>       }
>  
> -- 
> 2.15.0
> 
-- 
Jan Kara <j...@suse.com>
SUSE Labs, CR

Reply via email to