patch-2.4.26 linux-2.4.26/fs/jfs/jfs_dtree.c
Next file: linux-2.4.26/fs/jfs/jfs_dtree.h
Previous file: linux-2.4.26/fs/jfs/jfs_dmap.h
Back to the patch index
Back to the overall index
- Lines: 93
- Date:
2004-04-14 06:05:40.000000000 -0700
- Orig file:
linux-2.4.25/fs/jfs/jfs_dtree.c
- Orig date:
2003-11-28 10:26:21.000000000 -0800
diff -urN linux-2.4.25/fs/jfs/jfs_dtree.c linux-2.4.26/fs/jfs/jfs_dtree.c
@@ -162,9 +162,6 @@
static int dtDeleteUp(tid_t tid, struct inode *ip, struct metapage * fmp,
dtpage_t * fp, struct btstack * btstack);
-static int dtSearchNode(struct inode *ip,
- s64 lmxaddr, pxd_t * kpxd, struct btstack * btstack);
-
static int dtRelink(tid_t tid, struct inode *ip, dtpage_t * p);
static int dtReadFirst(struct inode *ip, struct btstack * btstack);
@@ -1426,8 +1423,10 @@
*/
if (nextbn != 0) {
DT_GETPAGE(ip, nextbn, mp, PSIZE, p, rc);
- if (rc)
+ if (rc) {
+ discard_metapage(rmp);
return rc;
+ }
BT_MARK_DIRTY(mp, ip);
/*
@@ -2238,8 +2237,10 @@
pxdlock->index = 1;
/* update sibling pointers */
- if ((rc = dtRelink(tid, ip, fp)))
+ if ((rc = dtRelink(tid, ip, fp))) {
+ BT_PUTPAGE(fmp);
return rc;
+ }
xlen = lengthPXD(&fp->header.self);
ip->i_blocks -= LBLK2PBLK(ip->i_sb, xlen);
@@ -2310,8 +2311,10 @@
pxdlock->index = 1;
/* update sibling pointers */
- if ((rc = dtRelink(tid, ip, p)))
+ if ((rc = dtRelink(tid, ip, p))) {
+ DT_PUTPAGE(mp);
return rc;
+ }
xlen = lengthPXD(&p->header.self);
ip->i_blocks -= LBLK2PBLK(ip->i_sb, xlen);
@@ -2380,7 +2383,7 @@
return 0;
}
-
+#ifdef _NOTYET
/*
* NAME: dtRelocate()
*
@@ -2575,7 +2578,6 @@
return rc;
}
-
/*
* NAME: dtSearchNode()
*
@@ -2625,8 +2627,10 @@
/*
* descend down to leftmost child page
*/
- if (p->header.flag & BT_LEAF)
+ if (p->header.flag & BT_LEAF) {
+ DT_PUTPAGE(mp);
return -ESTALE;
+ }
/* get the leftmost entry */
stbl = DT_GETSTBL(p);
@@ -2677,7 +2681,7 @@
goto loop;
}
-
+#endif /* _NOTYET */
/*
* dtRelink()
@@ -2933,7 +2937,7 @@
/*
* function to determine next variable-sized jfs_dirent in buffer
*/
-inline struct jfs_dirent *next_jfs_dirent(struct jfs_dirent *dirent)
+static inline struct jfs_dirent *next_jfs_dirent(struct jfs_dirent *dirent)
{
return (struct jfs_dirent *)
((char *)dirent +
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)