Commit 3078adde authored by Linus Torvalds's avatar Linus Torvalds

Merge http://jfs.bkbits.net/linux-2.5

into ppc970.osdl.org:/home/torvalds/v2.6/linux
parents 8aaac862 e7741dd4
...@@ -982,7 +982,9 @@ static int dtSplitUp(tid_t tid, ...@@ -982,7 +982,9 @@ static int dtSplitUp(tid_t tid,
split->pxdlist = &pxdlist; split->pxdlist = &pxdlist;
rc = dtSplitRoot(tid, ip, split, &rmp); rc = dtSplitRoot(tid, ip, split, &rmp);
DT_PUTPAGE(rmp); if (!rc)
DT_PUTPAGE(rmp);
DT_PUTPAGE(smp); DT_PUTPAGE(smp);
goto freeKeyName; goto freeKeyName;
...@@ -1876,6 +1878,9 @@ static int dtSplitRoot(tid_t tid, ...@@ -1876,6 +1878,9 @@ static int dtSplitRoot(tid_t tid,
xlen = lengthPXD(pxd); xlen = lengthPXD(pxd);
xsize = xlen << JFS_SBI(sb)->l2bsize; xsize = xlen << JFS_SBI(sb)->l2bsize;
rmp = get_metapage(ip, rbn, xsize, 1); rmp = get_metapage(ip, rbn, xsize, 1);
if (!rmp)
return -EIO;
rp = rmp->data; rp = rmp->data;
BT_MARK_DIRTY(rmp, ip); BT_MARK_DIRTY(rmp, ip);
......
...@@ -176,7 +176,6 @@ static void dtLog(struct jfs_log * log, struct tblock * tblk, struct lrd * lrd, ...@@ -176,7 +176,6 @@ static void dtLog(struct jfs_log * log, struct tblock * tblk, struct lrd * lrd,
struct tlock * tlck); struct tlock * tlck);
static void mapLog(struct jfs_log * log, struct tblock * tblk, struct lrd * lrd, static void mapLog(struct jfs_log * log, struct tblock * tblk, struct lrd * lrd,
struct tlock * tlck); struct tlock * tlck);
static void txAbortCommit(struct commit * cd);
static void txAllocPMap(struct inode *ip, struct maplock * maplock, static void txAllocPMap(struct inode *ip, struct maplock * maplock,
struct tblock * tblk); struct tblock * tblk);
static void txForce(struct tblock * tblk); static void txForce(struct tblock * tblk);
...@@ -1315,7 +1314,7 @@ int txCommit(tid_t tid, /* transaction identifier */ ...@@ -1315,7 +1314,7 @@ int txCommit(tid_t tid, /* transaction identifier */
out: out:
if (rc != 0) if (rc != 0)
txAbortCommit(&cd); txAbort(tid, 1);
TheEnd: TheEnd:
jfs_info("txCommit: tid = %d, returning %d", tid, rc); jfs_info("txCommit: tid = %d, returning %d", tid, rc);
...@@ -2647,64 +2646,6 @@ void txAbort(tid_t tid, int dirty) ...@@ -2647,64 +2646,6 @@ void txAbort(tid_t tid, int dirty)
return; return;
} }
/*
* txAbortCommit()
*
* function: abort commit.
*
* frees tlocks of transaction; line-locks and segment locks for all
* segments in comdata structure. frees malloc storage
* sets state of file-system to FM_MDIRTY in super-block.
* log age of page-frames in memory for which caller has
* are reset to 0 (to avoid logwarap).
*/
static void txAbortCommit(struct commit * cd)
{
struct tblock *tblk;
tid_t tid;
lid_t lid, next;
struct metapage *mp;
jfs_warn("txAbortCommit: cd:0x%p", cd);
/*
* free tlocks of the transaction
*/
tid = cd->tid;
tblk = tid_to_tblock(tid);
for (lid = tblk->next; lid; lid = next) {
next = lid_to_tlock(lid)->next;
mp = lid_to_tlock(lid)->mp;
if (mp) {
mp->lid = 0;
/*
* reset lsn of page to avoid logwarap;
*/
if (mp->xflag & COMMIT_PAGE)
LogSyncRelease(mp);
}
/* insert tlock at head of freelist */
TXN_LOCK();
txLockFree(lid);
TXN_UNLOCK();
}
tblk->next = tblk->last = 0;
/* free the transaction block */
txEnd(tid);
/*
* mark filesystem dirty
*/
jfs_error(cd->sb, "txAbortCommit");
}
/* /*
* txLazyCommit(void) * txLazyCommit(void)
* *
......
...@@ -792,14 +792,14 @@ static int jfs_link(struct dentry *old_dentry, ...@@ -792,14 +792,14 @@ static int jfs_link(struct dentry *old_dentry,
goto out; goto out;
if ((rc = dtSearch(dir, &dname, &ino, &btstack, JFS_CREATE))) if ((rc = dtSearch(dir, &dname, &ino, &btstack, JFS_CREATE)))
goto out; goto free_dname;
/* /*
* create entry for new link in parent directory * create entry for new link in parent directory
*/ */
ino = ip->i_ino; ino = ip->i_ino;
if ((rc = dtInsert(tid, dir, &dname, &ino, &btstack))) if ((rc = dtInsert(tid, dir, &dname, &ino, &btstack)))
goto out; goto free_dname;
/* update object inode */ /* update object inode */
ip->i_nlink++; /* for new link */ ip->i_nlink++; /* for new link */
...@@ -812,6 +812,9 @@ static int jfs_link(struct dentry *old_dentry, ...@@ -812,6 +812,9 @@ static int jfs_link(struct dentry *old_dentry,
iplist[1] = dir; iplist[1] = dir;
rc = txCommit(tid, 2, &iplist[0], 0); rc = txCommit(tid, 2, &iplist[0], 0);
free_dname:
free_UCSname(&dname);
out: out:
txEnd(tid); txEnd(tid);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment