• 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 defs:split

45  * it is extended rather than split (its size is doubled),
46 * until its length becoms 4 KBytes, from then the extent is split
76 * (e.g., if split occurs <abc> and <aBd>, <ABD> trather than <aB>
77 * should be made the router key for the split)
114 /* dtree split parameter */
153 struct dtsplit * split, struct btstack * btstack);
155 static int dtSplitPage(tid_t tid, struct inode *ip, struct dtsplit * split,
159 struct dtsplit * split, struct btstack * btstack);
162 struct dtsplit * split, struct metapage ** rmpp);
614 /* init level count for max pages to split */
774 /* update max. number of pages to split */
829 struct dtsplit split; /* split information */
865 * extend/split the leaf page;
870 split.mp = mp;
871 split.index = index;
872 split.nslot = n;
873 split.key = name;
874 split.data = &data;
875 rc = dtSplitUp(tid, ip, &split, btstack);
931 struct inode *ip, struct dtsplit * split, struct btstack * btstack)
936 dtpage_t *sp; /* split page */
938 dtpage_t *rp; /* new right page split from sp */
949 ddata_t *data = split->data;
956 /* get split page */
957 smp = split->mp;
968 * split leaf page
970 * The split routines insert the new entry, and
974 * split root leaf page:
984 if (n <= split->nslot)
996 split->pxdlist = &pxdlist;
997 rc = dtSplitRoot(tid, ip, split, &rmp);
1025 if ((n + sp->header.freecnt) <= split->nslot)
1045 split->pxdlist = &pxdlist;
1046 if ((rc = dtExtendPage(tid, ip, split, btstack))) {
1068 * split leaf page <sp> into <sp> and a new right page <rp>.
1074 * new index page(s) to cover page split(s)
1095 split->pxdlist = &pxdlist;
1096 if ((rc = dtSplitPage(tid, ip, split, &rmp, &rp, &rpxd))) {
1107 * propagate up the router entry for the leaf page just split
1110 * propagate the insert/split up the tree by walking back the stack
1112 * that were traversed during the search for the page that split.
1114 * the propagation of insert/split up the tree stops if the root
1115 * splits or the page inserted into doesn't have to split to hold
1118 * the parent entry for the split page remains the same, and
1147 * because the split was to the right.
1167 * if split occurs between these two entries, and
1230 * parent page is full - split the parent page
1233 /* init for parent page split */
1234 split->mp = smp;
1235 split->index = skip; /* index at insert */
1236 split->nslot = n;
1237 split->key = &key;
1238 /* split->data = data; */
1243 /* The split routines insert the new entry,
1248 dtSplitRoot(tid, ip, split, &rmp) :
1249 dtSplitPage(tid, ip, split, &rmp, &rp, &rpxd);
1293 /* unpin current split and its right page */
1298 * free remaining extents allocated for split
1328 * return split and new page pinned;
1330 static int dtSplitPage(tid_t tid, struct inode *ip, struct dtsplit * split,
1356 /* get split page */
1357 smp = split->mp;
1361 * allocate the new right page for the split
1363 pxdlist = split->pxdlist;
1393 * acquire a transaction lock on the split page
1400 /* linelock header of split page */
1434 * sequential append at tail: append without split
1440 * If we're wrong it's no big deal, we'll just do the split the right
1443 * reverse sorted data, that is, split the tree left,
1446 if (nextbn == 0 && split->index == sp->header.nextindex) {
1462 dtInsertEntry(rp, 0, split->key, split->data, &rdtlck);
1502 * split the data between the split and right pages.
1504 skip = split->index;
1509 * compute fill factor for split pages
1519 n = split->nslot;
1556 * split page moved out entries are linelocked;
1599 /* insert the new entry in the split page */
1600 dtInsertEntry(sp, skip, split->key, split->data, &sdtlck);
1602 /* linelock stbl of split page */
1620 dtInsertEntry(rp, skip, split->key, split->data, &rdtlck);
1643 struct inode *ip, struct dtsplit * split, struct btstack * btstack)
1668 smp = split->mp;
1680 pxdlist = split->pxdlist;
1821 dtInsertEntry(sp, split->index, split->key, split->data, &dtlck);
1861 * split the full root page into
1862 * original/root/split page and new right page
1866 * the split root page contains a single entry for the
1876 struct inode *ip, struct dtsplit * split, struct metapage ** rmpp)
1898 /* get split root page */
1899 smp = split->mp;
1905 * N.B. at first split, a one (or two) block to fit new entry
1906 * is allocated; at subsequent split, a full page is allocated;
1908 pxdlist = split->pxdlist;
2013 dtInsertEntry(rp, split->index, split->key, split->data, &dtlck);
4051 * function: move entries from split/left page to new/right page