• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/fs/jfs/

Lines Matching refs:split

108 	uint split;
121 struct xtsplit * split, struct btstack * btstack);
123 static int xtSplitPage(tid_t tid, struct inode *ip, struct xtsplit * split,
127 struct xtsplit * split, struct metapage ** rmpp);
250 int nsplit = 0; /* number of pages to split */
347 /* compute number of pages to split */
394 /* compute number of pages to split */
452 /* compute number of pages to split */
494 /* update number of pages to split */
547 struct xtsplit split; /* split information */
602 * if the leaf page is full, split the page and
603 * propagate up the router entry for the new page from split
609 split.mp = mp;
610 split.index = index;
611 split.flag = xflag;
612 split.off = xoff;
613 split.len = xlen;
614 split.addr = xaddr;
615 split.pxdlist = NULL;
616 if ((rc = xtSplitUp(tid, ip, &split, &btstack))) {
676 * split full pages as propagating insertion up the tree
681 * split - entry parameter descriptor;
688 struct inode *ip, struct xtsplit * split, struct btstack * btstack)
692 xtpage_t *sp; /* split page */
704 int nsplit; /* number of pages split */
710 smp = split->mp;
728 skip = split->index;
736 XT_PUTENTRY(xad, split->flag, split->off, split->len,
737 split->addr);
757 * allocate new index blocks to cover index page split(s)
761 if (split->pxdlist == NULL) {
763 split->pxdlist = &pxdlist;
788 * The split routines insert the new entry into the leaf page,
793 xtSplitRoot(tid, ip, split, &rmp) :
794 xtSplitPage(tid, ip, split, &rmp, &rbn);
801 * propagate up the router entry for the leaf page just split
804 * propagate the insert/split up the tree by walking back the stack
806 * that were traversed during the search for the page that split.
808 * the propagation of insert/split up the tree stops if the root
809 * splits or the page inserted into doesn't have to split to hold
812 * the parent entry for the split page remains the same, and
841 * because the split was to the right.
846 * split or shift right remaining entries of the parent page
850 * parent page is full - split the parent page
853 /* init for parent page split */
854 split->mp = smp;
855 split->index = skip; /* index at insert */
856 split->flag = XAD_NEW;
857 split->off = offsetXAD(&rcp->xad[XTENTRYSTART]);
858 split->len = JFS_SBI(ip->i_sb)->nbperpage;
859 split->addr = rcbn;
864 /* The split routines insert the new entry,
869 xtSplitRoot(tid, ip, split, &rmp) :
870 xtSplitPage(tid, ip, split, &rmp, &rbn);
942 * split a full non-root page into
943 * original/split/left page and new right page
944 * i.e., the original/split page remains as left page.
949 * struct xtsplit *split,
958 struct xtsplit * split, struct metapage ** rmpp, s64 * rbnp)
977 smp = split->mp;
980 INCREMENT(xtStat.split);
982 pxdlist = split->pxdlist;
995 * allocate the new right page for the split
1026 * acquire a transaction lock on the split page
1040 skip = split->index;
1049 * if we're wrong it's no big deal - we will do the split the right
1052 * reverse sorted data, that is, split the tree left, but it's not.
1063 XT_PUTENTRY(xad, split->flag, split->off, split->len,
1064 split->addr);
1113 * split the data between the split and new/right pages
1120 * skip index in old split/left page - insert into left page:
1123 /* move right half of split page to the new right page */
1134 XT_PUTENTRY(xad, split->flag, split->off, split->len,
1135 split->addr);
1159 XT_PUTENTRY(xad, split->flag, split->off, split->len,
1160 split->addr);
1207 * split the full root page into original/root/split page and new
1211 * non-root page, and the split root page contains a single entry
1217 * struct xtsplit *split,
1225 struct inode *ip, struct xtsplit * split, struct metapage ** rmpp)
1241 INCREMENT(xtStat.split);
1246 pxdlist = split->pxdlist;
1292 skip = split->index;
1299 XT_PUTENTRY(xad, split->flag, split->off, split->len, split->addr);
1322 * action: root split;
1324 BT_MARK_DIRTY(split->mp, ip);
1336 tlck = txLock(tid, ip, split->mp, tlckXTREE | tlckGROW);
1371 struct xtsplit split; /* split information */
1426 * propagate up the router entry for the new page from split
1432 split.mp = mp;
1433 split.index = index + 1;
1434 split.flag = XAD_NEW;
1435 split.off = xoff; /* split offset */
1436 split.len = len;
1437 split.addr = xaddr;
1438 split.pxdlist = NULL;
1439 if ((rc = xtSplitUp(tid, ip, &split, &btstack)))
1447 * if leaf root has been split, original root has been
1512 * function: split existing 'tail' extent
1513 * (split offset >= start offset of tail extent), and
1514 * relocate and extend the split tail half;
1519 * update pmap: free old split tail extent, alloc new extent;
1522 struct inode *ip, s64 xoff, /* split/new extent offset */
1534 struct xtsplit split; /* split information */
1592 * propagate up the router entry for the new page from split
1598 split.mp = mp;
1599 split.index = index + 1;
1600 split.flag = XAD_NEW;
1601 split.off = xoff; /* split offset */
1602 split.len = xlen;
1603 split.addr = xaddr;
1604 split.pxdlist = NULL;
1605 if ((rc = xtSplitUp(tid, ip, &split, &btstack)))
1613 * if leaf root has been split, original root has been
1652 * truncate/relocate old extent at split offset
1714 struct xtsplit split; /* split information */
1916 * split XAD into (lXAD, nXAD):
1931 split.mp = mp;
1932 split.index = newindex;
1933 split.flag = xflag & ~XAD_NOTRECORDED;
1934 split.off = nxoff;
1935 split.len = nxlen;
1936 split.addr = nxaddr;
1937 split.pxdlist = NULL;
1938 if ((rc = xtSplitUp(tid, ip, &split, &btstack)))
1946 * if leaf root has been split, original root has been
1995 * does nXAD force 3-way split ?
2004 /* reorient nXAD as XAD for further split XAD into (nXAD, rXAD) */
2039 /* recompute split pages */
2064 * split XAD into (nXAD, rXAD)
2082 printf("xtUpdate.updateLeft.split p:0x%p\n", p);
2085 split.mp = mp;
2086 split.index = newindex;
2087 split.flag = xflag;
2088 split.off = xoff;
2089 split.len = xlen;
2090 split.addr = xaddr;
2091 split.pxdlist = NULL;
2092 if ((rc = xtSplitUp(tid, ip, &split, &btstack)))
2101 * if leaf root has been split, original root has been
2182 struct xtsplit split; /* split information */
2225 * if the leaf page is full, split the page and
2226 * propagate up the router entry for the new page from split
2235 * allocate new index blocks to cover index page split(s)
2238 split.pxdlist = &pxdlist;
2265 split.mp = mp;
2266 split.index = index;
2267 split.flag = xflag;
2268 split.off = xoff;
2269 split.len = xlen;
2270 split.addr = xaddr;
2271 if ((rc = xtSplitUp(tid, ip, &split, &btstack))) {
3889 xtStat.split);