All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steven Whitehouse <swhiteho@redhat.com>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] [GFS2 PATCH] GFS2: check and correct zero i_goal
Date: Thu, 11 Sep 2014 12:13:21 +0100	[thread overview]
Message-ID: <541183D1.2020901@redhat.com> (raw)
In-Reply-To: <1410433261-43792-1-git-send-email-adas@redhat.com>

Hi,

On 11/09/14 12:01, Abhi Das wrote:
> A GFS1->GFS2 converted filesystem can have the ip->i_goal field
> set to zero for inodes. This incorrect value results in -EBADSLT
> when the user attempts to allocate blocks to such inodes. This
> patch assigns the goal block to be the block address of the inode
> itself, which serves as a reasonable starting point for the
> allocation logic to find the next available block.
>
> Resolves: rhbz#1130684
> Signed-off-by: Abhi Das <adas@redhat.com>
> ---
>   fs/gfs2/glops.c | 3 +++
>   1 file changed, 3 insertions(+)
>
> diff --git a/fs/gfs2/glops.c b/fs/gfs2/glops.c
> index 2ffc67d..799427b 100644
> --- a/fs/gfs2/glops.c
> +++ b/fs/gfs2/glops.c
> @@ -349,6 +349,9 @@ static int gfs2_dinode_in(struct gfs2_inode *ip, const void *buf)
>   	ip->i_inode.i_ctime.tv_nsec = be32_to_cpu(str->di_ctime_nsec);
>   
>   	ip->i_goal = be64_to_cpu(str->di_goal_meta);
> +	if (!ip->i_goal) /* From a previous gfs2_convert, perhaps */
> +		ip->i_goal = ip->i_no_addr;
> +
>   	ip->i_generation = be64_to_cpu(str->di_generation);
>   
>   	ip->i_diskflags = be32_to_cpu(str->di_flags);

I don't think that is the right place to make the change, since if the 
fs is read only then the in-kernel copy will be different to the on-disk 
copy of the inode. Better to catch the problem at block allocation time 
and use i_no_addr if i_goal is invalid then (and that doesn't just mean 
0 - it might be pointing at another "impossible" block)

Steve.



      reply	other threads:[~2014-09-11 11:13 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-11 11:01 [Cluster-devel] [GFS2 PATCH] GFS2: check and correct zero i_goal Abhi Das
2014-09-11 11:13 ` Steven Whitehouse [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=541183D1.2020901@redhat.com \
    --to=swhiteho@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.