[Top] [All Lists]

Re: [PATCH] xfs: fix access to upper inodes without inode64

To: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Subject: Re: [PATCH] xfs: fix access to upper inodes without inode64
From: Alex Elder <aelder@xxxxxxx>
Date: Fri, 28 May 2010 13:49:00 -0500
Cc: xfs@xxxxxxxxxxx
In-reply-to: <20100527190515.GA16102@xxxxxxxxxxxxx>
References: <20100527190515.GA16102@xxxxxxxxxxxxx>
Reply-to: aelder@xxxxxxx
On Thu, 2010-05-27 at 15:05 -0400, Christoph Hellwig wrote:
> If a filesystem is mounted without the inode64 mount option we should still
> be able to access inodes not fitting into 32 bits, just not created new
> ones.  For this to work we need to make sure the inode cache radix tree
> is initialized for all allocation groups, not just those we plan to allocate
> inodes from.  This patch makes sure we initialize the inode cache radix
> tree for all allocation groups, and also cleans xfs_initialize_perag up
> a bit to separate the inode32 logical from the general perag structure
> setup.
> Signed-off-by: Christoph Hellwig <hch@xxxxxx>

One other thing:

> Index: xfs/fs/xfs/xfs_inode.c
> ===================================================================
> --- xfs.orig/fs/xfs/xfs_inode.c       2010-05-27 20:59:09.000000000 +0200
> +++ xfs/fs/xfs/xfs_inode.c    2010-05-27 20:59:43.315004399 +0200
> @@ -2624,7 +2624,6 @@ xfs_iflush_cluster(
>       int                     i;
>       pag = xfs_perag_get(mp, XFS_INO_TO_AGNO(mp, ip->i_ino));
> -     ASSERT(pag->pag_ici_init);

This doesn't apply in my tree, because it's missing this:

I believe that this missing assertion should be deleted
also, to go along with the purpose of this patch.

Again, I'll make this change myself before I commit;
let me know if you would like me not to.


>       inodes_per_cluster = XFS_INODE_CLUSTER_SIZE(mp) >> mp->m_sb.sb_inodelog;
>       ilist_size = inodes_per_cluster * sizeof(xfs_inode_t *);

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