jfs: Update agstart when resizing volume
authorDave Kleikamp <dave.kleikamp@oracle.com>
Mon, 20 Jun 2011 15:32:46 +0000 (10:32 -0500)
committerDave Kleikamp <dave.kleikamp@oracle.com>
Mon, 20 Jun 2011 15:32:46 +0000 (10:32 -0500)
A comment indicates that the IAG's agstart does not need to be updated
since it will always point to a block in the same aggregate group, but
jfs_fsck isn't so forgiving and reports it as an error.

I'm fixing this in jfsutils as well, so either a new kernel or new
utilities will be sufficient to fix the problem.

Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
fs/jfs/jfs_imap.c

index ed53a4740168bc2d7692ea07531663049d991dfe..0533e8f3d19e60370405be2302f077d3a31df71b 100644 (file)
@@ -2921,10 +2921,9 @@ int diExtendFS(struct inode *ipimap, struct inode *ipbmap)
                        continue;
                }
 
-               /* agstart that computes to the same ag is treated as same; */
                agstart = le64_to_cpu(iagp->agstart);
-               /* iagp->agstart = agstart & ~(mp->db_agsize - 1); */
                n = agstart >> mp->db_agl2size;
+               iagp->agstart = cpu_to_le64((s64)n << mp->db_agl2size);
 
                /* compute backed inodes */
                numinos = (EXTSPERIAG - le32_to_cpu(iagp->nfreeexts))