summaryrefslogtreecommitdiffstats
path: root/fs/jfs/jfs_dtree.c
diff options
context:
space:
mode:
authorDave Kleikamp <shaggy@austin.ibm.com>2005-06-02 19:18:20 +0200
committerDave Kleikamp <shaggy@austin.ibm.com>2005-06-02 19:18:20 +0200
commitc2731509cfb538b9b38feaf657fab2334ea45253 (patch)
treecb7ad2847067b5ba436b78077c4abc61ce736444 /fs/jfs/jfs_dtree.c
parentMerge with /home/shaggy/git/linus-clean/ (diff)
downloadlinux-c2731509cfb538b9b38feaf657fab2334ea45253.tar.xz
linux-c2731509cfb538b9b38feaf657fab2334ea45253.zip
JFS: kernel BUG at fs/jfs/jfs_txnmgr.c:859
add_missing_indices() must set tlck->type to tlckBTROOT when modifying a root btree root to avoid a trap in txRelease() Signed-off-by: Dave Kleikamp <shaggy@austin.ibm.com>
Diffstat (limited to 'fs/jfs/jfs_dtree.c')
-rw-r--r--fs/jfs/jfs_dtree.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/jfs/jfs_dtree.c b/fs/jfs/jfs_dtree.c
index ac41f72d6d50..8676aee3ae48 100644
--- a/fs/jfs/jfs_dtree.c
+++ b/fs/jfs/jfs_dtree.c
@@ -2931,6 +2931,9 @@ static void add_missing_indices(struct inode *inode, s64 bn)
ASSERT(p->header.flag & BT_LEAF);
tlck = txLock(tid, inode, mp, tlckDTREE | tlckENTRY);
+ if (BT_IS_ROOT(mp))
+ tlck->type |= tlckBTROOT;
+
dtlck = (struct dt_lock *) &tlck->lock;
stbl = DT_GETSTBL(p);