* Re: [PATCH RESEND 2/2] btrfs:Fix error handling in the function btrfs_dev_replace_kthread
[not found] ` <1451437807-23173-2-git-send-email-xerofoify@gmail.com>
@ 2015-12-30 21:08 ` Chris Mason
0 siblings, 0 replies; only message in thread
From: Chris Mason @ 2015-12-30 21:08 UTC (permalink / raw)
To: Nicholas Krause; +Cc: jbacik, dsterba, linux-btrfs, linux-kernel
On Tue, Dec 29, 2015 at 08:10:07PM -0500, Nicholas Krause wrote:
> This fixes error handling in the function btrfs_dev_replace_kthread
> by checking if the call to the function btrfs_dev_replace_continue_on_mount
> has failed and if so return the error code to this function's caller in
> order to signal a failure has occurred when calling this particular
> function.
>
> Signed-off-by: Nicholas Krause <xerofoify@gmail.com>
> ---
> fs/btrfs/dev-replace.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/fs/btrfs/dev-replace.c b/fs/btrfs/dev-replace.c
> index 38ffd73..b26f68c 100644
> --- a/fs/btrfs/dev-replace.c
> +++ b/fs/btrfs/dev-replace.c
> @@ -803,6 +803,7 @@ static int btrfs_dev_replace_kthread(void *data)
> struct btrfs_dev_replace *dev_replace = &fs_info->dev_replace;
> struct btrfs_ioctl_dev_replace_args *status_args;
> u64 progress;
> + int ret;
>
> status_args = kzalloc(sizeof(*status_args), GFP_NOFS);
> if (status_args) {
> @@ -820,7 +821,9 @@ static int btrfs_dev_replace_kthread(void *data)
> "<missing target disk>",
> (unsigned int)progress);
> }
> - btrfs_dev_replace_continue_on_mount(fs_info);
> + ret = btrfs_dev_replace_continue_on_mount(fs_info);
> + if (ret)
> + return ret;
> atomic_set(&fs_info->mutually_exclusive_operation_running, 0);
This atomic_set that you're skipping is really important.
-chris
^ permalink raw reply [flat|nested] only message in thread