]> git.ipfire.org Git - people/ms/linux.git/blobdiff - fs/jfs/jfs_dtree.c
fs/jfs: Remove dead code
[people/ms/linux.git] / fs / jfs / jfs_dtree.c
index 837d42f61464b3a7e06bd8cf625d8e1a96fbfd5e..92b7c533407c12f61e22823e4a4fd774d7420f67 100644 (file)
@@ -2423,304 +2423,6 @@ static int dtDeleteUp(tid_t tid, struct inode *ip,
        return 0;
 }
 
-#ifdef _NOTYET
-/*
- * NAME:       dtRelocate()
- *
- * FUNCTION:   relocate dtpage (internal or leaf) of directory;
- *             This function is mainly used by defragfs utility.
- */
-int dtRelocate(tid_t tid, struct inode *ip, s64 lmxaddr, pxd_t * opxd,
-              s64 nxaddr)
-{
-       int rc = 0;
-       struct metapage *mp, *pmp, *lmp, *rmp;
-       dtpage_t *p, *pp, *rp = 0, *lp= 0;
-       s64 bn;
-       int index;
-       struct btstack btstack;
-       pxd_t *pxd;
-       s64 oxaddr, nextbn, prevbn;
-       int xlen, xsize;
-       struct tlock *tlck;
-       struct dt_lock *dtlck;
-       struct pxd_lock *pxdlock;
-       s8 *stbl;
-       struct lv *lv;
-
-       oxaddr = addressPXD(opxd);
-       xlen = lengthPXD(opxd);
-
-       jfs_info("dtRelocate: lmxaddr:%Ld xaddr:%Ld:%Ld xlen:%d",
-                  (long long)lmxaddr, (long long)oxaddr, (long long)nxaddr,
-                  xlen);
-
-       /*
-        *      1. get the internal parent dtpage covering
-        *      router entry for the tartget page to be relocated;
-        */
-       rc = dtSearchNode(ip, lmxaddr, opxd, &btstack);
-       if (rc)
-               return rc;
-
-       /* retrieve search result */
-       DT_GETSEARCH(ip, btstack.top, bn, pmp, pp, index);
-       jfs_info("dtRelocate: parent router entry validated.");
-
-       /*
-        *      2. relocate the target dtpage
-        */
-       /* read in the target page from src extent */
-       DT_GETPAGE(ip, oxaddr, mp, PSIZE, p, rc);
-       if (rc) {
-               /* release the pinned parent page */
-               DT_PUTPAGE(pmp);
-               return rc;
-       }
-
-       /*
-        * read in sibling pages if any to update sibling pointers;
-        */
-       rmp = NULL;
-       if (p->header.next) {
-               nextbn = le64_to_cpu(p->header.next);
-               DT_GETPAGE(ip, nextbn, rmp, PSIZE, rp, rc);
-               if (rc) {
-                       DT_PUTPAGE(mp);
-                       DT_PUTPAGE(pmp);
-                       return (rc);
-               }
-       }
-
-       lmp = NULL;
-       if (p->header.prev) {
-               prevbn = le64_to_cpu(p->header.prev);
-               DT_GETPAGE(ip, prevbn, lmp, PSIZE, lp, rc);
-               if (rc) {
-                       DT_PUTPAGE(mp);
-                       DT_PUTPAGE(pmp);
-                       if (rmp)
-                               DT_PUTPAGE(rmp);
-                       return (rc);
-               }
-       }
-
-       /* at this point, all xtpages to be updated are in memory */
-
-       /*
-        * update sibling pointers of sibling dtpages if any;
-        */
-       if (lmp) {
-               tlck = txLock(tid, ip, lmp, tlckDTREE | tlckRELINK);
-               dtlck = (struct dt_lock *) & tlck->lock;
-               /* linelock header */
-               ASSERT(dtlck->index == 0);
-               lv = & dtlck->lv[0];
-               lv->offset = 0;
-               lv->length = 1;
-               dtlck->index++;
-
-               lp->header.next = cpu_to_le64(nxaddr);
-               DT_PUTPAGE(lmp);
-       }
-
-       if (rmp) {
-               tlck = txLock(tid, ip, rmp, tlckDTREE | tlckRELINK);
-               dtlck = (struct dt_lock *) & tlck->lock;
-               /* linelock header */
-               ASSERT(dtlck->index == 0);
-               lv = & dtlck->lv[0];
-               lv->offset = 0;
-               lv->length = 1;
-               dtlck->index++;
-
-               rp->header.prev = cpu_to_le64(nxaddr);
-               DT_PUTPAGE(rmp);
-       }
-
-       /*
-        * update the target dtpage to be relocated
-        *
-        * write LOG_REDOPAGE of LOG_NEW type for dst page
-        * for the whole target page (logredo() will apply
-        * after image and update bmap for allocation of the
-        * dst extent), and update bmap for allocation of
-        * the dst extent;
-        */
-       tlck = txLock(tid, ip, mp, tlckDTREE | tlckNEW);
-       dtlck = (struct dt_lock *) & tlck->lock;
-       /* linelock header */
-       ASSERT(dtlck->index == 0);
-       lv = & dtlck->lv[0];
-
-       /* update the self address in the dtpage header */
-       pxd = &p->header.self;
-       PXDaddress(pxd, nxaddr);
-
-       /* the dst page is the same as the src page, i.e.,
-        * linelock for afterimage of the whole page;
-        */
-       lv->offset = 0;
-       lv->length = p->header.maxslot;
-       dtlck->index++;
-
-       /* update the buffer extent descriptor of the dtpage */
-       xsize = xlen << JFS_SBI(ip->i_sb)->l2bsize;
-
-       /* unpin the relocated page */
-       DT_PUTPAGE(mp);
-       jfs_info("dtRelocate: target dtpage relocated.");
-
-       /* the moved extent is dtpage, then a LOG_NOREDOPAGE log rec
-        * needs to be written (in logredo(), the LOG_NOREDOPAGE log rec
-        * will also force a bmap update ).
-        */
-
-       /*
-        *      3. acquire maplock for the source extent to be freed;
-        */
-       /* for dtpage relocation, write a LOG_NOREDOPAGE record
-        * for the source dtpage (logredo() will init NoRedoPage
-        * filter and will also update bmap for free of the source
-        * dtpage), and upadte bmap for free of the source dtpage;
-        */
-       tlck = txMaplock(tid, ip, tlckDTREE | tlckFREE);
-       pxdlock = (struct pxd_lock *) & tlck->lock;
-       pxdlock->flag = mlckFREEPXD;
-       PXDaddress(&pxdlock->pxd, oxaddr);
-       PXDlength(&pxdlock->pxd, xlen);
-       pxdlock->index = 1;
-
-       /*
-        *      4. update the parent router entry for relocation;
-        *
-        * acquire tlck for the parent entry covering the target dtpage;
-        * write LOG_REDOPAGE to apply after image only;
-        */
-       jfs_info("dtRelocate: update parent router entry.");
-       tlck = txLock(tid, ip, pmp, tlckDTREE | tlckENTRY);
-       dtlck = (struct dt_lock *) & tlck->lock;
-       lv = & dtlck->lv[dtlck->index];
-
-       /* update the PXD with the new address */
-       stbl = DT_GETSTBL(pp);
-       pxd = (pxd_t *) & pp->slot[stbl[index]];
-       PXDaddress(pxd, nxaddr);
-       lv->offset = stbl[index];
-       lv->length = 1;
-       dtlck->index++;
-
-       /* unpin the parent dtpage */
-       DT_PUTPAGE(pmp);
-
-       return rc;
-}
-
-/*
- * NAME:       dtSearchNode()
- *
- * FUNCTION:   Search for an dtpage containing a specified address
- *             This function is mainly used by defragfs utility.
- *
- * NOTE:       Search result on stack, the found page is pinned at exit.
- *             The result page must be an internal dtpage.
- *             lmxaddr give the address of the left most page of the
- *             dtree level, in which the required dtpage resides.
- */
-static int dtSearchNode(struct inode *ip, s64 lmxaddr, pxd_t * kpxd,
-                       struct btstack * btstack)
-{
-       int rc = 0;
-       s64 bn;
-       struct metapage *mp;
-       dtpage_t *p;
-       int psize = 288;        /* initial in-line directory */
-       s8 *stbl;
-       int i;
-       pxd_t *pxd;
-       struct btframe *btsp;
-
-       BT_CLR(btstack);        /* reset stack */
-
-       /*
-        *      descend tree to the level with specified leftmost page
-        *
-        *  by convention, root bn = 0.
-        */
-       for (bn = 0;;) {
-               /* get/pin the page to search */
-               DT_GETPAGE(ip, bn, mp, psize, p, rc);
-               if (rc)
-                       return rc;
-
-               /* does the xaddr of leftmost page of the levevl
-                * matches levevl search key ?
-                */
-               if (p->header.flag & BT_ROOT) {
-                       if (lmxaddr == 0)
-                               break;
-               } else if (addressPXD(&p->header.self) == lmxaddr)
-                       break;
-
-               /*
-                * descend down to leftmost child page
-                */
-               if (p->header.flag & BT_LEAF) {
-                       DT_PUTPAGE(mp);
-                       return -ESTALE;
-               }
-
-               /* get the leftmost entry */
-               stbl = DT_GETSTBL(p);
-               pxd = (pxd_t *) & p->slot[stbl[0]];
-
-               /* get the child page block address */
-               bn = addressPXD(pxd);
-               psize = lengthPXD(pxd) << JFS_SBI(ip->i_sb)->l2bsize;
-               /* unpin the parent page */
-               DT_PUTPAGE(mp);
-       }
-
-       /*
-        *      search each page at the current levevl
-        */
-      loop:
-       stbl = DT_GETSTBL(p);
-       for (i = 0; i < p->header.nextindex; i++) {
-               pxd = (pxd_t *) & p->slot[stbl[i]];
-
-               /* found the specified router entry */
-               if (addressPXD(pxd) == addressPXD(kpxd) &&
-                   lengthPXD(pxd) == lengthPXD(kpxd)) {
-                       btsp = btstack->top;
-                       btsp->bn = bn;
-                       btsp->index = i;
-                       btsp->mp = mp;
-
-                       return 0;
-               }
-       }
-
-       /* get the right sibling page if any */
-       if (p->header.next)
-               bn = le64_to_cpu(p->header.next);
-       else {
-               DT_PUTPAGE(mp);
-               return -ESTALE;
-       }
-
-       /* unpin current page */
-       DT_PUTPAGE(mp);
-
-       /* get the right sibling page */
-       DT_GETPAGE(ip, bn, mp, PSIZE, p, rc);
-       if (rc)
-               return rc;
-
-       goto loop;
-}
-#endif /* _NOTYET */
-
 /*
  *     dtRelink()
  *