diff options
author | Dave Kleikamp <shaggy@austin.ibm.com> | 2005-06-02 13:18:20 -0400 |
---|---|---|
committer | Dave Kleikamp <shaggy@austin.ibm.com> | 2005-06-02 13:18:20 -0400 |
commit | c2731509cfb538b9b38feaf657fab2334ea45253 (patch) | |
tree | cb7ad2847067b5ba436b78077c4abc61ce736444 /fs | |
parent | 7078253c085c037c070ca4e8bc9e9e7f18aa1e84 (diff) |
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')
-rw-r--r-- | fs/jfs/jfs_dtree.c | 3 |
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) | |||
2931 | ASSERT(p->header.flag & BT_LEAF); | 2931 | ASSERT(p->header.flag & BT_LEAF); |
2932 | 2932 | ||
2933 | tlck = txLock(tid, inode, mp, tlckDTREE | tlckENTRY); | 2933 | tlck = txLock(tid, inode, mp, tlckDTREE | tlckENTRY); |
2934 | if (BT_IS_ROOT(mp)) | ||
2935 | tlck->type |= tlckBTROOT; | ||
2936 | |||
2934 | dtlck = (struct dt_lock *) &tlck->lock; | 2937 | dtlck = (struct dt_lock *) &tlck->lock; |
2935 | 2938 | ||
2936 | stbl = DT_GETSTBL(p); | 2939 | stbl = DT_GETSTBL(p); |