xfs
[Top] [All Lists]

Re: [PATCH] xfs_repair: open filesystem device exclusively

To: "Nathaniel W. Turner" <nate@xxxxxxxxxxxxxxx>
Subject: Re: [PATCH] xfs_repair: open filesystem device exclusively
From: Eric Sandeen <sandeen@xxxxxxxxxxx>
Date: Wed, 06 May 2009 21:55:59 -0500
Cc: xfs@xxxxxxxxxxx
In-reply-to: <49B491EA.4090003@xxxxxxxxxxxxxxx>
References: <49B48B8E.3030602@xxxxxxxxxxxxxxx> <49B491EA.4090003@xxxxxxxxxxxxxxx>
User-agent: Thunderbird 2.0.0.21 (Macintosh/20090302)
Nathaniel W. Turner wrote:
> I forgot to mention that this is against xfsprogs 3.0.0.  Also, the
> indentation was a bit messed up on that last post, so here's the patch
> again (all 2 lines of it):
> 
> ----
> 
> I'm sure there is a better way to fix this, but without this patch, two
> xfs_repair processes will happily operate on the same filesystem device
> at the same time.  It is also possible to mount a filesystem that is in
> the process of being repaired.
> 
> This seems like it's probably not ideal, so this patch just modifies
> xfs_repair to open the filesystem device with O_EXCL unless it was
> invoked in "no modify" or "dangerous" mode.

...

> Signed-off-by: Nathaniel W. Turner <nate@xxxxxxxxxxxxxxx>

Christoph already looked I guess, but I'll give this my thumbs-up too :)

-Eric

> ---
>  repair/init.c |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
> 
> diff --git a/repair/init.c b/repair/init.c
> index 8e508c4..7e5052c 100644
> --- a/repair/init.c
> +++ b/repair/init.c
> @@ -142,6 +142,8 @@ xfs_init(libxfs_init_t *args)
>          args->isreadonly = (LIBXFS_ISREADONLY | LIBXFS_ISINACTIVE);
>      else if (dangerously)
>          args->isreadonly = (LIBXFS_ISINACTIVE | LIBXFS_DANGEROUSLY);
> +    else
> +        args->isreadonly = LIBXFS_EXCLUSIVELY;
>  
>      if (!libxfs_init(args))
>          do_error(_("couldn't initialize XFS library\n"));
> 

<Prev in Thread] Current Thread [Next in Thread>