s32 xlen;
rc = xtLookup(inode, blkno, 1, &xflag, &xaddr, &xlen, 1);
- if (rc || (xlen == 0))
+ if (rc || (xaddr == 0))
return NULL;
return read_metapage(inode, xaddr, PSIZE, 1);
s32 xlen;
rc = xtLookup(inode, blkno, 1, &xflag, &xaddr, &xlen, 1);
- if (rc || (xlen == 0))
+ if (rc || (xaddr == 0))
return NULL;
return get_metapage(inode, xaddr, PSIZE, 1);
return NULL;
}
- if (jfs_ip->next_index <= (MAX_INLINE_DIRTABLE_ENTRY + 1)) {
+ if (jfs_dirtable_inline(ip)) {
/*
* Inline directory table
*/
n = NDTLEAF_LEGACY(name->namlen);
data.leaf.ip = NULL; /* signifies legacy directory format */
}
- data.leaf.ino = cpu_to_le32(*fsn);
+ data.leaf.ino = *fsn;
/*
* leaf page does not have enough room for new entry:
* the old directory table.
*/
if (DO_INDEX(ip)) {
- if (jfs_ip->next_index > (MAX_INLINE_DIRTABLE_ENTRY + 1)) {
+ if (!jfs_dirtable_inline(ip)) {
struct tblock *tblk = tid_to_tblock(tid);
/*
* We're playing games with the tid's xflag. If
d = (struct ldtentry *) & p->slot[stbl[i]];
if (((long) jfs_dirent + d->namlen + 1) >
- (dirent_buf + PSIZE)) {
+ (dirent_buf + PAGE_SIZE)) {
/* DBCS codepages could overrun dirent_buf */
index = i;
overflow = 1;
dtpage_t * p, /* directory page */
int si)
{ /* entry slot index */
- wchar_t *kname, *name;
+ wchar_t *kname;
+ __le16 *name;
int klen, namlen, len, rc;
struct idtentry *ih;
struct dtslot *t;
int si, /* entry slot index */
int flag)
{
- wchar_t *kname, *name, x;
+ wchar_t *kname, x;
+ __le16 *name;
int klen, namlen, len, rc;
struct ldtentry *lh;
struct idtentry *ih;
struct idtentry *ih;
struct dtslot *t;
int namlen, len;
- wchar_t *name, *kname;
+ wchar_t *kname;
+ __le16 *name;
/* get entry */
stbl = DT_GETSTBL(p);
/*
* move head/only segment
*/
- UniStrncpy_le(kname, name, len);
+ UniStrncpy_from_le(kname, name, len);
/*
* move additional segment(s)
kname += len;
namlen -= len;
len = min(namlen, DTSLOTDATALEN);
- UniStrncpy_le(kname, t->name, len);
+ UniStrncpy_from_le(kname, t->name, len);
si = t->next;
}
struct ldtentry *lh = NULL;
struct idtentry *ih = NULL;
int hsi, fsi, klen, len, nextindex;
- wchar_t *kname, *name;
+ wchar_t *kname;
+ __le16 *name;
s8 *stbl;
pxd_t *xd;
struct dt_lock *dtlck = *dtlock;
if (p->header.flag & BT_LEAF) {
lh = (struct ldtentry *) h;
lh->next = h->next;
- lh->inumber = data->leaf.ino; /* little-endian */
+ lh->inumber = cpu_to_le32(data->leaf.ino);
lh->namlen = klen;
name = lh->name;
if (data->leaf.ip) {
len = min(klen, DTIHDRDATALEN);
}
- UniStrncpy_le(name, kname, len);
+ UniStrncpy_to_le(name, kname, len);
n = 1;
xsi = hsi;
kname += len;
len = min(klen, DTSLOTDATALEN);
- UniStrncpy_le(t->name, kname, len);
+ UniStrncpy_to_le(t->name, kname, len);
n++;
xsi = fsi;
d++;
len = min(snamlen, DTSLOTDATALEN);
- UniStrncpy(d->name, s->name, len);
+ UniStrncpy_le(d->name, s->name, len);
ns++;
nd++;