|
@@ -14,11 +14,11 @@ static loff_t get_pos(struct dnode *d, struct hpfs_dirent *fde)
|
|
|
struct hpfs_dirent *de_end = dnode_end_de(d);
|
|
|
int i = 1;
|
|
|
for (de = dnode_first_de(d); de < de_end; de = de_next_de(de)) {
|
|
|
- if (de == fde) return ((loff_t) d->self << 4) | (loff_t)i;
|
|
|
+ if (de == fde) return ((loff_t) le32_to_cpu(d->self) << 4) | (loff_t)i;
|
|
|
i++;
|
|
|
}
|
|
|
printk("HPFS: get_pos: not_found\n");
|
|
|
- return ((loff_t)d->self << 4) | (loff_t)1;
|
|
|
+ return ((loff_t)le32_to_cpu(d->self) << 4) | (loff_t)1;
|
|
|
}
|
|
|
|
|
|
void hpfs_add_pos(struct inode *inode, loff_t *pos)
|
|
@@ -130,30 +130,30 @@ static void set_last_pointer(struct super_block *s, struct dnode *d, dnode_secno
|
|
|
{
|
|
|
struct hpfs_dirent *de;
|
|
|
if (!(de = dnode_last_de(d))) {
|
|
|
- hpfs_error(s, "set_last_pointer: empty dnode %08x", d->self);
|
|
|
+ hpfs_error(s, "set_last_pointer: empty dnode %08x", le32_to_cpu(d->self));
|
|
|
return;
|
|
|
}
|
|
|
if (hpfs_sb(s)->sb_chk) {
|
|
|
if (de->down) {
|
|
|
hpfs_error(s, "set_last_pointer: dnode %08x has already last pointer %08x",
|
|
|
- d->self, de_down_pointer(de));
|
|
|
+ le32_to_cpu(d->self), de_down_pointer(de));
|
|
|
return;
|
|
|
}
|
|
|
- if (de->length != 32) {
|
|
|
- hpfs_error(s, "set_last_pointer: bad last dirent in dnode %08x", d->self);
|
|
|
+ if (le16_to_cpu(de->length) != 32) {
|
|
|
+ hpfs_error(s, "set_last_pointer: bad last dirent in dnode %08x", le32_to_cpu(d->self));
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
if (ptr) {
|
|
|
d->first_free = cpu_to_le32(le32_to_cpu(d->first_free) + 4);
|
|
|
if (le32_to_cpu(d->first_free) > 2048) {
|
|
|
- hpfs_error(s, "set_last_pointer: too long dnode %08x", d->self);
|
|
|
+ hpfs_error(s, "set_last_pointer: too long dnode %08x", le32_to_cpu(d->self));
|
|
|
d->first_free = cpu_to_le32(le32_to_cpu(d->first_free) - 4);
|
|
|
return;
|
|
|
}
|
|
|
- de->length = 36;
|
|
|
+ de->length = cpu_to_le16(36);
|
|
|
de->down = 1;
|
|
|
- *(dnode_secno *)((char *)de + 32) = ptr;
|
|
|
+ *(dnode_secno *)((char *)de + 32) = cpu_to_le32(ptr);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -169,7 +169,7 @@ struct hpfs_dirent *hpfs_add_de(struct super_block *s, struct dnode *d,
|
|
|
for (de = dnode_first_de(d); de < de_end; de = de_next_de(de)) {
|
|
|
int c = hpfs_compare_names(s, name, namelen, de->name, de->namelen, de->last);
|
|
|
if (!c) {
|
|
|
- hpfs_error(s, "name (%c,%d) already exists in dnode %08x", *name, namelen, d->self);
|
|
|
+ hpfs_error(s, "name (%c,%d) already exists in dnode %08x", *name, namelen, le32_to_cpu(d->self));
|
|
|
return NULL;
|
|
|
}
|
|
|
if (c < 0) break;
|
|
@@ -177,11 +177,10 @@ struct hpfs_dirent *hpfs_add_de(struct super_block *s, struct dnode *d,
|
|
|
memmove((char *)de + d_size, de, (char *)de_end - (char *)de);
|
|
|
memset(de, 0, d_size);
|
|
|
if (down_ptr) {
|
|
|
- *(int *)((char *)de + d_size - 4) = down_ptr;
|
|
|
+ *(dnode_secno *)((char *)de + d_size - 4) = cpu_to_le32(down_ptr);
|
|
|
de->down = 1;
|
|
|
}
|
|
|
- de->length = d_size;
|
|
|
- if (down_ptr) de->down = 1;
|
|
|
+ de->length = cpu_to_le16(d_size);
|
|
|
de->not_8x3 = hpfs_is_name_long(name, namelen);
|
|
|
de->namelen = namelen;
|
|
|
memcpy(de->name, name, namelen);
|
|
@@ -195,10 +194,10 @@ static void hpfs_delete_de(struct super_block *s, struct dnode *d,
|
|
|
struct hpfs_dirent *de)
|
|
|
{
|
|
|
if (de->last) {
|
|
|
- hpfs_error(s, "attempt to delete last dirent in dnode %08x", d->self);
|
|
|
+ hpfs_error(s, "attempt to delete last dirent in dnode %08x", le32_to_cpu(d->self));
|
|
|
return;
|
|
|
}
|
|
|
- d->first_free = cpu_to_le32(le32_to_cpu(d->first_free) - de->length);
|
|
|
+ d->first_free = cpu_to_le32(le32_to_cpu(d->first_free) - le16_to_cpu(de->length));
|
|
|
memmove(de, de_next_de(de), le32_to_cpu(d->first_free) + (char *)d - (char *)de);
|
|
|
}
|
|
|
|
|
@@ -206,14 +205,14 @@ static void fix_up_ptrs(struct super_block *s, struct dnode *d)
|
|
|
{
|
|
|
struct hpfs_dirent *de;
|
|
|
struct hpfs_dirent *de_end = dnode_end_de(d);
|
|
|
- dnode_secno dno = d->self;
|
|
|
+ dnode_secno dno = le32_to_cpu(d->self);
|
|
|
for (de = dnode_first_de(d); de < de_end; de = de_next_de(de))
|
|
|
if (de->down) {
|
|
|
struct quad_buffer_head qbh;
|
|
|
struct dnode *dd;
|
|
|
if ((dd = hpfs_map_dnode(s, de_down_pointer(de), &qbh))) {
|
|
|
- if (dd->up != dno || dd->root_dnode) {
|
|
|
- dd->up = dno;
|
|
|
+ if (le32_to_cpu(dd->up) != dno || dd->root_dnode) {
|
|
|
+ dd->up = cpu_to_le32(dno);
|
|
|
dd->root_dnode = 0;
|
|
|
hpfs_mark_4buffers_dirty(&qbh);
|
|
|
}
|
|
@@ -291,7 +290,7 @@ static int hpfs_add_to_dnode(struct inode *i, dnode_secno dno,
|
|
|
copy_de(de = hpfs_add_de(i->i_sb, nd, name, namelen, down_ptr), new_de);
|
|
|
for_all_poss(i, hpfs_pos_ins, get_pos(nd, de), 1);
|
|
|
h = ((char *)dnode_last_de(nd) - (char *)nd) / 2 + 10;
|
|
|
- if (!(ad = hpfs_alloc_dnode(i->i_sb, d->up, &adno, &qbh1))) {
|
|
|
+ if (!(ad = hpfs_alloc_dnode(i->i_sb, le32_to_cpu(d->up), &adno, &qbh1))) {
|
|
|
hpfs_error(i->i_sb, "unable to alloc dnode - dnode tree will be corrupted");
|
|
|
hpfs_brelse4(&qbh);
|
|
|
kfree(nd);
|
|
@@ -315,19 +314,20 @@ static int hpfs_add_to_dnode(struct inode *i, dnode_secno dno,
|
|
|
set_last_pointer(i->i_sb, ad, de->down ? de_down_pointer(de) : 0);
|
|
|
de = de_next_de(de);
|
|
|
memmove((char *)nd + 20, de, le32_to_cpu(nd->first_free) + (char *)nd - (char *)de);
|
|
|
- nd->first_free = cpu_to_le32(le32_to_cpu(nd->first_free) - (char *)de - (char *)nd - 20);
|
|
|
+ nd->first_free = cpu_to_le32(le32_to_cpu(nd->first_free) - ((char *)de - (char *)nd - 20));
|
|
|
memcpy(d, nd, le32_to_cpu(nd->first_free));
|
|
|
for_all_poss(i, hpfs_pos_del, (loff_t)dno << 4, pos);
|
|
|
fix_up_ptrs(i->i_sb, ad);
|
|
|
if (!d->root_dnode) {
|
|
|
- dno = ad->up = d->up;
|
|
|
+ ad->up = d->up;
|
|
|
+ dno = le32_to_cpu(ad->up);
|
|
|
hpfs_mark_4buffers_dirty(&qbh);
|
|
|
hpfs_brelse4(&qbh);
|
|
|
hpfs_mark_4buffers_dirty(&qbh1);
|
|
|
hpfs_brelse4(&qbh1);
|
|
|
goto go_up;
|
|
|
}
|
|
|
- if (!(rd = hpfs_alloc_dnode(i->i_sb, d->up, &rdno, &qbh2))) {
|
|
|
+ if (!(rd = hpfs_alloc_dnode(i->i_sb, le32_to_cpu(d->up), &rdno, &qbh2))) {
|
|
|
hpfs_error(i->i_sb, "unable to alloc dnode - dnode tree will be corrupted");
|
|
|
hpfs_brelse4(&qbh);
|
|
|
hpfs_brelse4(&qbh1);
|
|
@@ -339,7 +339,7 @@ static int hpfs_add_to_dnode(struct inode *i, dnode_secno dno,
|
|
|
i->i_blocks += 4;
|
|
|
rd->root_dnode = 1;
|
|
|
rd->up = d->up;
|
|
|
- if (!(fnode = hpfs_map_fnode(i->i_sb, d->up, &bh))) {
|
|
|
+ if (!(fnode = hpfs_map_fnode(i->i_sb, le32_to_cpu(d->up), &bh))) {
|
|
|
hpfs_free_dnode(i->i_sb, rdno);
|
|
|
hpfs_brelse4(&qbh);
|
|
|
hpfs_brelse4(&qbh1);
|
|
@@ -348,10 +348,11 @@ static int hpfs_add_to_dnode(struct inode *i, dnode_secno dno,
|
|
|
kfree(nname);
|
|
|
return 1;
|
|
|
}
|
|
|
- fnode->u.external[0].disk_secno = rdno;
|
|
|
+ fnode->u.external[0].disk_secno = cpu_to_le32(rdno);
|
|
|
mark_buffer_dirty(bh);
|
|
|
brelse(bh);
|
|
|
- d->up = ad->up = hpfs_i(i)->i_dno = rdno;
|
|
|
+ hpfs_i(i)->i_dno = rdno;
|
|
|
+ d->up = ad->up = cpu_to_le32(rdno);
|
|
|
d->root_dnode = ad->root_dnode = 0;
|
|
|
hpfs_mark_4buffers_dirty(&qbh);
|
|
|
hpfs_brelse4(&qbh);
|
|
@@ -436,9 +437,9 @@ static secno move_to_top(struct inode *i, dnode_secno from, dnode_secno to)
|
|
|
return 0;
|
|
|
if (!(dnode = hpfs_map_dnode(i->i_sb, dno, &qbh))) return 0;
|
|
|
if (hpfs_sb(i->i_sb)->sb_chk) {
|
|
|
- if (dnode->up != chk_up) {
|
|
|
+ if (le32_to_cpu(dnode->up) != chk_up) {
|
|
|
hpfs_error(i->i_sb, "move_to_top: up pointer from %08x should be %08x, is %08x",
|
|
|
- dno, chk_up, dnode->up);
|
|
|
+ dno, chk_up, le32_to_cpu(dnode->up));
|
|
|
hpfs_brelse4(&qbh);
|
|
|
return 0;
|
|
|
}
|
|
@@ -454,7 +455,7 @@ static secno move_to_top(struct inode *i, dnode_secno from, dnode_secno to)
|
|
|
hpfs_brelse4(&qbh);
|
|
|
}
|
|
|
while (!(de = dnode_pre_last_de(dnode))) {
|
|
|
- dnode_secno up = dnode->up;
|
|
|
+ dnode_secno up = le32_to_cpu(dnode->up);
|
|
|
hpfs_brelse4(&qbh);
|
|
|
hpfs_free_dnode(i->i_sb, dno);
|
|
|
i->i_size -= 2048;
|
|
@@ -474,7 +475,7 @@ static secno move_to_top(struct inode *i, dnode_secno from, dnode_secno to)
|
|
|
return 0;
|
|
|
}
|
|
|
dnode->first_free = cpu_to_le32(le32_to_cpu(dnode->first_free) - 4);
|
|
|
- de->length -= 4;
|
|
|
+ de->length = cpu_to_le16(le16_to_cpu(de->length) - 4);
|
|
|
de->down = 0;
|
|
|
hpfs_mark_4buffers_dirty(&qbh);
|
|
|
dno = up;
|
|
@@ -482,12 +483,12 @@ static secno move_to_top(struct inode *i, dnode_secno from, dnode_secno to)
|
|
|
t = get_pos(dnode, de);
|
|
|
for_all_poss(i, hpfs_pos_subst, t, 4);
|
|
|
for_all_poss(i, hpfs_pos_subst, t + 1, 5);
|
|
|
- if (!(nde = kmalloc(de->length, GFP_NOFS))) {
|
|
|
+ if (!(nde = kmalloc(le16_to_cpu(de->length), GFP_NOFS))) {
|
|
|
hpfs_error(i->i_sb, "out of memory for dirent - directory will be corrupted");
|
|
|
hpfs_brelse4(&qbh);
|
|
|
return 0;
|
|
|
}
|
|
|
- memcpy(nde, de, de->length);
|
|
|
+ memcpy(nde, de, le16_to_cpu(de->length));
|
|
|
ddno = de->down ? de_down_pointer(de) : 0;
|
|
|
hpfs_delete_de(i->i_sb, dnode, de);
|
|
|
set_last_pointer(i->i_sb, dnode, ddno);
|
|
@@ -520,7 +521,7 @@ static void delete_empty_dnode(struct inode *i, dnode_secno dno)
|
|
|
if (le32_to_cpu(dnode->first_free) == 52 || le32_to_cpu(dnode->first_free) == 56) {
|
|
|
struct hpfs_dirent *de_end;
|
|
|
int root = dnode->root_dnode;
|
|
|
- up = dnode->up;
|
|
|
+ up = le32_to_cpu(dnode->up);
|
|
|
de = dnode_first_de(dnode);
|
|
|
down = de->down ? de_down_pointer(de) : 0;
|
|
|
if (hpfs_sb(i->i_sb)->sb_chk) if (root && !down) {
|
|
@@ -544,13 +545,13 @@ static void delete_empty_dnode(struct inode *i, dnode_secno dno)
|
|
|
return;
|
|
|
}
|
|
|
if ((d1 = hpfs_map_dnode(i->i_sb, down, &qbh1))) {
|
|
|
- d1->up = up;
|
|
|
+ d1->up = cpu_to_le32(up);
|
|
|
d1->root_dnode = 1;
|
|
|
hpfs_mark_4buffers_dirty(&qbh1);
|
|
|
hpfs_brelse4(&qbh1);
|
|
|
}
|
|
|
if ((fnode = hpfs_map_fnode(i->i_sb, up, &bh))) {
|
|
|
- fnode->u.external[0].disk_secno = down;
|
|
|
+ fnode->u.external[0].disk_secno = cpu_to_le32(down);
|
|
|
mark_buffer_dirty(bh);
|
|
|
brelse(bh);
|
|
|
}
|
|
@@ -569,16 +570,16 @@ static void delete_empty_dnode(struct inode *i, dnode_secno dno)
|
|
|
for_all_poss(i, hpfs_pos_subst, ((loff_t)dno << 4) | 1, ((loff_t)up << 4) | p);
|
|
|
if (!down) {
|
|
|
de->down = 0;
|
|
|
- de->length -= 4;
|
|
|
+ de->length = cpu_to_le16(le16_to_cpu(de->length) - 4);
|
|
|
dnode->first_free = cpu_to_le32(le32_to_cpu(dnode->first_free) - 4);
|
|
|
memmove(de_next_de(de), (char *)de_next_de(de) + 4,
|
|
|
(char *)dnode + le32_to_cpu(dnode->first_free) - (char *)de_next_de(de));
|
|
|
} else {
|
|
|
struct dnode *d1;
|
|
|
struct quad_buffer_head qbh1;
|
|
|
- *(dnode_secno *) ((void *) de + de->length - 4) = down;
|
|
|
+ *(dnode_secno *) ((void *) de + le16_to_cpu(de->length) - 4) = down;
|
|
|
if ((d1 = hpfs_map_dnode(i->i_sb, down, &qbh1))) {
|
|
|
- d1->up = up;
|
|
|
+ d1->up = cpu_to_le32(up);
|
|
|
hpfs_mark_4buffers_dirty(&qbh1);
|
|
|
hpfs_brelse4(&qbh1);
|
|
|
}
|
|
@@ -595,18 +596,18 @@ static void delete_empty_dnode(struct inode *i, dnode_secno dno)
|
|
|
struct quad_buffer_head qbh1;
|
|
|
if (!de_next->down) goto endm;
|
|
|
ndown = de_down_pointer(de_next);
|
|
|
- if (!(de_cp = kmalloc(de->length, GFP_NOFS))) {
|
|
|
+ if (!(de_cp = kmalloc(le16_to_cpu(de->length), GFP_NOFS))) {
|
|
|
printk("HPFS: out of memory for dtree balancing\n");
|
|
|
goto endm;
|
|
|
}
|
|
|
- memcpy(de_cp, de, de->length);
|
|
|
+ memcpy(de_cp, de, le16_to_cpu(de->length));
|
|
|
hpfs_delete_de(i->i_sb, dnode, de);
|
|
|
hpfs_mark_4buffers_dirty(&qbh);
|
|
|
hpfs_brelse4(&qbh);
|
|
|
for_all_poss(i, hpfs_pos_subst, ((loff_t)up << 4) | p, 4);
|
|
|
for_all_poss(i, hpfs_pos_del, ((loff_t)up << 4) | p, 1);
|
|
|
if (de_cp->down) if ((d1 = hpfs_map_dnode(i->i_sb, de_down_pointer(de_cp), &qbh1))) {
|
|
|
- d1->up = ndown;
|
|
|
+ d1->up = cpu_to_le32(ndown);
|
|
|
hpfs_mark_4buffers_dirty(&qbh1);
|
|
|
hpfs_brelse4(&qbh1);
|
|
|
}
|
|
@@ -646,38 +647,38 @@ static void delete_empty_dnode(struct inode *i, dnode_secno dno)
|
|
|
printk("HPFS: warning: unbalanced dnode tree, see hpfs.txt 4 more info\n");
|
|
|
printk("HPFS: warning: goin'on\n");
|
|
|
}
|
|
|
- del->length += 4;
|
|
|
+ del->length = cpu_to_le16(le16_to_cpu(del->length) + 4);
|
|
|
del->down = 1;
|
|
|
d1->first_free = cpu_to_le32(le32_to_cpu(d1->first_free) + 4);
|
|
|
}
|
|
|
if (dlp && !down) {
|
|
|
- del->length -= 4;
|
|
|
+ del->length = cpu_to_le16(le16_to_cpu(del->length) - 4);
|
|
|
del->down = 0;
|
|
|
d1->first_free = cpu_to_le32(le32_to_cpu(d1->first_free) - 4);
|
|
|
} else if (down)
|
|
|
- *(dnode_secno *) ((void *) del + del->length - 4) = down;
|
|
|
+ *(dnode_secno *) ((void *) del + le16_to_cpu(del->length) - 4) = cpu_to_le32(down);
|
|
|
} else goto endm;
|
|
|
- if (!(de_cp = kmalloc(de_prev->length, GFP_NOFS))) {
|
|
|
+ if (!(de_cp = kmalloc(le16_to_cpu(de_prev->length), GFP_NOFS))) {
|
|
|
printk("HPFS: out of memory for dtree balancing\n");
|
|
|
hpfs_brelse4(&qbh1);
|
|
|
goto endm;
|
|
|
}
|
|
|
hpfs_mark_4buffers_dirty(&qbh1);
|
|
|
hpfs_brelse4(&qbh1);
|
|
|
- memcpy(de_cp, de_prev, de_prev->length);
|
|
|
+ memcpy(de_cp, de_prev, le16_to_cpu(de_prev->length));
|
|
|
hpfs_delete_de(i->i_sb, dnode, de_prev);
|
|
|
if (!de_prev->down) {
|
|
|
- de_prev->length += 4;
|
|
|
+ de_prev->length = cpu_to_le16(le16_to_cpu(de_prev->length) + 4);
|
|
|
de_prev->down = 1;
|
|
|
dnode->first_free = cpu_to_le32(le32_to_cpu(dnode->first_free) + 4);
|
|
|
}
|
|
|
- *(dnode_secno *) ((void *) de_prev + de_prev->length - 4) = ndown;
|
|
|
+ *(dnode_secno *) ((void *) de_prev + le16_to_cpu(de_prev->length) - 4) = cpu_to_le32(ndown);
|
|
|
hpfs_mark_4buffers_dirty(&qbh);
|
|
|
hpfs_brelse4(&qbh);
|
|
|
for_all_poss(i, hpfs_pos_subst, ((loff_t)up << 4) | (p - 1), 4);
|
|
|
for_all_poss(i, hpfs_pos_subst, ((loff_t)up << 4) | p, ((loff_t)up << 4) | (p - 1));
|
|
|
if (down) if ((d1 = hpfs_map_dnode(i->i_sb, de_down_pointer(de), &qbh1))) {
|
|
|
- d1->up = ndown;
|
|
|
+ d1->up = cpu_to_le32(ndown);
|
|
|
hpfs_mark_4buffers_dirty(&qbh1);
|
|
|
hpfs_brelse4(&qbh1);
|
|
|
}
|
|
@@ -744,8 +745,8 @@ void hpfs_count_dnodes(struct super_block *s, dnode_secno dno, int *n_dnodes,
|
|
|
ptr = 0;
|
|
|
go_up:
|
|
|
if (!(dnode = hpfs_map_dnode(s, dno, &qbh))) return;
|
|
|
- if (hpfs_sb(s)->sb_chk) if (odno && odno != -1 && dnode->up != odno)
|
|
|
- hpfs_error(s, "hpfs_count_dnodes: bad up pointer; dnode %08x, down %08x points to %08x", odno, dno, dnode->up);
|
|
|
+ if (hpfs_sb(s)->sb_chk) if (odno && odno != -1 && le32_to_cpu(dnode->up) != odno)
|
|
|
+ hpfs_error(s, "hpfs_count_dnodes: bad up pointer; dnode %08x, down %08x points to %08x", odno, dno, le32_to_cpu(dnode->up));
|
|
|
de = dnode_first_de(dnode);
|
|
|
if (ptr) while(1) {
|
|
|
if (de->down) if (de_down_pointer(de) == ptr) goto process_de;
|
|
@@ -769,7 +770,7 @@ void hpfs_count_dnodes(struct super_block *s, dnode_secno dno, int *n_dnodes,
|
|
|
if (!de->first && !de->last && n_items) (*n_items)++;
|
|
|
if ((de = de_next_de(de)) < dnode_end_de(dnode)) goto next_de;
|
|
|
ptr = dno;
|
|
|
- dno = dnode->up;
|
|
|
+ dno = le32_to_cpu(dnode->up);
|
|
|
if (dnode->root_dnode) {
|
|
|
hpfs_brelse4(&qbh);
|
|
|
return;
|
|
@@ -817,8 +818,8 @@ dnode_secno hpfs_de_as_down_as_possible(struct super_block *s, dnode_secno dno)
|
|
|
return d;
|
|
|
if (!(de = map_nth_dirent(s, d, 1, &qbh, NULL))) return dno;
|
|
|
if (hpfs_sb(s)->sb_chk)
|
|
|
- if (up && ((struct dnode *)qbh.data)->up != up)
|
|
|
- hpfs_error(s, "hpfs_de_as_down_as_possible: bad up pointer; dnode %08x, down %08x points to %08x", up, d, ((struct dnode *)qbh.data)->up);
|
|
|
+ if (up && le32_to_cpu(((struct dnode *)qbh.data)->up) != up)
|
|
|
+ hpfs_error(s, "hpfs_de_as_down_as_possible: bad up pointer; dnode %08x, down %08x points to %08x", up, d, le32_to_cpu(((struct dnode *)qbh.data)->up));
|
|
|
if (!de->down) {
|
|
|
hpfs_brelse4(&qbh);
|
|
|
return d;
|
|
@@ -867,7 +868,7 @@ struct hpfs_dirent *map_pos_dirent(struct inode *inode, loff_t *posp,
|
|
|
/* Going up */
|
|
|
if (dnode->root_dnode) goto bail;
|
|
|
|
|
|
- if (!(up_dnode = hpfs_map_dnode(inode->i_sb, dnode->up, &qbh0)))
|
|
|
+ if (!(up_dnode = hpfs_map_dnode(inode->i_sb, le32_to_cpu(dnode->up), &qbh0)))
|
|
|
goto bail;
|
|
|
|
|
|
end_up_de = dnode_end_de(up_dnode);
|
|
@@ -875,16 +876,16 @@ struct hpfs_dirent *map_pos_dirent(struct inode *inode, loff_t *posp,
|
|
|
for (up_de = dnode_first_de(up_dnode); up_de < end_up_de;
|
|
|
up_de = de_next_de(up_de)) {
|
|
|
if (!(++c & 077)) hpfs_error(inode->i_sb,
|
|
|
- "map_pos_dirent: pos crossed dnode boundary; dnode = %08x", dnode->up);
|
|
|
+ "map_pos_dirent: pos crossed dnode boundary; dnode = %08x", le32_to_cpu(dnode->up));
|
|
|
if (up_de->down && de_down_pointer(up_de) == dno) {
|
|
|
- *posp = ((loff_t) dnode->up << 4) + c;
|
|
|
+ *posp = ((loff_t) le32_to_cpu(dnode->up) << 4) + c;
|
|
|
hpfs_brelse4(&qbh0);
|
|
|
return de;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
hpfs_error(inode->i_sb, "map_pos_dirent: pointer to dnode %08x not found in parent dnode %08x",
|
|
|
- dno, dnode->up);
|
|
|
+ dno, le32_to_cpu(dnode->up));
|
|
|
hpfs_brelse4(&qbh0);
|
|
|
|
|
|
bail:
|
|
@@ -1010,17 +1011,17 @@ struct hpfs_dirent *map_fnode_dirent(struct super_block *s, fnode_secno fno,
|
|
|
/*name2[15] = 0xff;*/
|
|
|
name1len = 15; name2len = 256;
|
|
|
}
|
|
|
- if (!(upf = hpfs_map_fnode(s, f->up, &bh))) {
|
|
|
+ if (!(upf = hpfs_map_fnode(s, le32_to_cpu(f->up), &bh))) {
|
|
|
kfree(name2);
|
|
|
return NULL;
|
|
|
}
|
|
|
if (!upf->dirflag) {
|
|
|
brelse(bh);
|
|
|
- hpfs_error(s, "fnode %08x has non-directory parent %08x", fno, f->up);
|
|
|
+ hpfs_error(s, "fnode %08x has non-directory parent %08x", fno, le32_to_cpu(f->up));
|
|
|
kfree(name2);
|
|
|
return NULL;
|
|
|
}
|
|
|
- dno = upf->u.external[0].disk_secno;
|
|
|
+ dno = le32_to_cpu(upf->u.external[0].disk_secno);
|
|
|
brelse(bh);
|
|
|
go_down:
|
|
|
downd = 0;
|
|
@@ -1042,7 +1043,7 @@ struct hpfs_dirent *map_fnode_dirent(struct super_block *s, fnode_secno fno,
|
|
|
return NULL;
|
|
|
}
|
|
|
next_de:
|
|
|
- if (de->fnode == fno) {
|
|
|
+ if (le32_to_cpu(de->fnode) == fno) {
|
|
|
kfree(name2);
|
|
|
return de;
|
|
|
}
|
|
@@ -1058,7 +1059,7 @@ struct hpfs_dirent *map_fnode_dirent(struct super_block *s, fnode_secno fno,
|
|
|
goto go_down;
|
|
|
}
|
|
|
f:
|
|
|
- if (de->fnode == fno) {
|
|
|
+ if (le32_to_cpu(de->fnode) == fno) {
|
|
|
kfree(name2);
|
|
|
return de;
|
|
|
}
|
|
@@ -1067,7 +1068,7 @@ struct hpfs_dirent *map_fnode_dirent(struct super_block *s, fnode_secno fno,
|
|
|
if ((de = de_next_de(de)) < de_end) goto next_de;
|
|
|
if (d->root_dnode) goto not_found;
|
|
|
downd = dno;
|
|
|
- dno = d->up;
|
|
|
+ dno = le32_to_cpu(d->up);
|
|
|
hpfs_brelse4(qbh);
|
|
|
if (hpfs_sb(s)->sb_chk)
|
|
|
if (hpfs_stop_cycles(s, downd, &d1, &d2, "map_fnode_dirent #2")) {
|