summaryrefslogtreecommitdiffstats
path: root/fs/jfs
diff options
context:
space:
mode:
authorDave Kleikamp <dave.kleikamp@oracle.com>2011-06-20 17:32:46 +0200
committerDave Kleikamp <dave.kleikamp@oracle.com>2011-06-20 17:32:46 +0200
commit28e0fa894cd5996d3007ce82f07226f79beb7286 (patch)
treecb6d92f311c70c106d9623505b4a038d7a827319 /fs/jfs
parentjfs: old_agsize should be 64 bits in jfs_extendfs (diff)
downloadlinux-28e0fa894cd5996d3007ce82f07226f79beb7286.tar.xz
linux-28e0fa894cd5996d3007ce82f07226f79beb7286.zip
jfs: Update agstart when resizing volume
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>
Diffstat (limited to 'fs/jfs')
-rw-r--r--fs/jfs/jfs_imap.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/fs/jfs/jfs_imap.c b/fs/jfs/jfs_imap.c
index ed53a4740168..0533e8f3d19e 100644
--- a/fs/jfs/jfs_imap.c
+++ b/fs/jfs/jfs_imap.c
@@ -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))