mirror of https://gitee.com/openkylin/linux.git
hpfs: bitmaps are little-endian
annotate properly... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
c4c995430a
commit
52576da354
|
@ -16,9 +16,9 @@
|
||||||
static int chk_if_allocated(struct super_block *s, secno sec, char *msg)
|
static int chk_if_allocated(struct super_block *s, secno sec, char *msg)
|
||||||
{
|
{
|
||||||
struct quad_buffer_head qbh;
|
struct quad_buffer_head qbh;
|
||||||
u32 *bmp;
|
__le32 *bmp;
|
||||||
if (!(bmp = hpfs_map_bitmap(s, sec >> 14, &qbh, "chk"))) goto fail;
|
if (!(bmp = hpfs_map_bitmap(s, sec >> 14, &qbh, "chk"))) goto fail;
|
||||||
if ((cpu_to_le32(bmp[(sec & 0x3fff) >> 5]) >> (sec & 0x1f)) & 1) {
|
if ((le32_to_cpu(bmp[(sec & 0x3fff) >> 5]) >> (sec & 0x1f)) & 1) {
|
||||||
hpfs_error(s, "sector '%s' - %08x not allocated in bitmap", msg, sec);
|
hpfs_error(s, "sector '%s' - %08x not allocated in bitmap", msg, sec);
|
||||||
goto fail1;
|
goto fail1;
|
||||||
}
|
}
|
||||||
|
@ -62,7 +62,7 @@ int hpfs_chk_sectors(struct super_block *s, secno start, int len, char *msg)
|
||||||
static secno alloc_in_bmp(struct super_block *s, secno near, unsigned n, unsigned forward)
|
static secno alloc_in_bmp(struct super_block *s, secno near, unsigned n, unsigned forward)
|
||||||
{
|
{
|
||||||
struct quad_buffer_head qbh;
|
struct quad_buffer_head qbh;
|
||||||
unsigned *bmp;
|
__le32 *bmp;
|
||||||
unsigned bs = near & ~0x3fff;
|
unsigned bs = near & ~0x3fff;
|
||||||
unsigned nr = (near & 0x3fff) & ~(n - 1);
|
unsigned nr = (near & 0x3fff) & ~(n - 1);
|
||||||
/*unsigned mnr;*/
|
/*unsigned mnr;*/
|
||||||
|
@ -236,7 +236,7 @@ static secno alloc_in_dirband(struct super_block *s, secno near)
|
||||||
int hpfs_alloc_if_possible(struct super_block *s, secno sec)
|
int hpfs_alloc_if_possible(struct super_block *s, secno sec)
|
||||||
{
|
{
|
||||||
struct quad_buffer_head qbh;
|
struct quad_buffer_head qbh;
|
||||||
u32 *bmp;
|
__le32 *bmp;
|
||||||
if (!(bmp = hpfs_map_bitmap(s, sec >> 14, &qbh, "aip"))) goto end;
|
if (!(bmp = hpfs_map_bitmap(s, sec >> 14, &qbh, "aip"))) goto end;
|
||||||
if (le32_to_cpu(bmp[(sec & 0x3fff) >> 5]) & (1 << (sec & 0x1f))) {
|
if (le32_to_cpu(bmp[(sec & 0x3fff) >> 5]) & (1 << (sec & 0x1f))) {
|
||||||
bmp[(sec & 0x3fff) >> 5] &= cpu_to_le32(~(1 << (sec & 0x1f)));
|
bmp[(sec & 0x3fff) >> 5] &= cpu_to_le32(~(1 << (sec & 0x1f)));
|
||||||
|
@ -254,7 +254,7 @@ int hpfs_alloc_if_possible(struct super_block *s, secno sec)
|
||||||
void hpfs_free_sectors(struct super_block *s, secno sec, unsigned n)
|
void hpfs_free_sectors(struct super_block *s, secno sec, unsigned n)
|
||||||
{
|
{
|
||||||
struct quad_buffer_head qbh;
|
struct quad_buffer_head qbh;
|
||||||
u32 *bmp;
|
__le32 *bmp;
|
||||||
struct hpfs_sb_info *sbi = hpfs_sb(s);
|
struct hpfs_sb_info *sbi = hpfs_sb(s);
|
||||||
/*printk("2 - ");*/
|
/*printk("2 - ");*/
|
||||||
if (!n) return;
|
if (!n) return;
|
||||||
|
@ -299,7 +299,7 @@ int hpfs_check_free_dnodes(struct super_block *s, int n)
|
||||||
int n_bmps = (hpfs_sb(s)->sb_fs_size + 0x4000 - 1) >> 14;
|
int n_bmps = (hpfs_sb(s)->sb_fs_size + 0x4000 - 1) >> 14;
|
||||||
int b = hpfs_sb(s)->sb_c_bitmap & 0x0fffffff;
|
int b = hpfs_sb(s)->sb_c_bitmap & 0x0fffffff;
|
||||||
int i, j;
|
int i, j;
|
||||||
u32 *bmp;
|
__le32 *bmp;
|
||||||
struct quad_buffer_head qbh;
|
struct quad_buffer_head qbh;
|
||||||
if ((bmp = hpfs_map_dnode_bitmap(s, &qbh))) {
|
if ((bmp = hpfs_map_dnode_bitmap(s, &qbh))) {
|
||||||
for (j = 0; j < 512; j++) {
|
for (j = 0; j < 512; j++) {
|
||||||
|
@ -351,7 +351,7 @@ void hpfs_free_dnode(struct super_block *s, dnode_secno dno)
|
||||||
hpfs_free_sectors(s, dno, 4);
|
hpfs_free_sectors(s, dno, 4);
|
||||||
} else {
|
} else {
|
||||||
struct quad_buffer_head qbh;
|
struct quad_buffer_head qbh;
|
||||||
u32 *bmp;
|
__le32 *bmp;
|
||||||
unsigned ssec = (dno - hpfs_sb(s)->sb_dirband_start) / 4;
|
unsigned ssec = (dno - hpfs_sb(s)->sb_dirband_start) / 4;
|
||||||
if (!(bmp = hpfs_map_dnode_bitmap(s, &qbh))) {
|
if (!(bmp = hpfs_map_dnode_bitmap(s, &qbh))) {
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -178,7 +178,7 @@ static inline void copy_de(struct hpfs_dirent *dst, struct hpfs_dirent *src)
|
||||||
dst->not_8x3 = n;
|
dst->not_8x3 = n;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline unsigned tstbits(u32 *bmp, unsigned b, unsigned n)
|
static inline unsigned tstbits(__le32 *bmp, unsigned b, unsigned n)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
if ((b >= 0x4000) || (b + n - 1 >= 0x4000)) return n;
|
if ((b >= 0x4000) || (b + n - 1 >= 0x4000)) return n;
|
||||||
|
@ -275,8 +275,8 @@ void hpfs_evict_inode(struct inode *);
|
||||||
|
|
||||||
/* map.c */
|
/* map.c */
|
||||||
|
|
||||||
unsigned *hpfs_map_dnode_bitmap(struct super_block *, struct quad_buffer_head *);
|
__le32 *hpfs_map_dnode_bitmap(struct super_block *, struct quad_buffer_head *);
|
||||||
unsigned *hpfs_map_bitmap(struct super_block *, unsigned, struct quad_buffer_head *, char *);
|
__le32 *hpfs_map_bitmap(struct super_block *, unsigned, struct quad_buffer_head *, char *);
|
||||||
unsigned char *hpfs_load_code_page(struct super_block *, secno);
|
unsigned char *hpfs_load_code_page(struct super_block *, secno);
|
||||||
secno *hpfs_load_bitmap_directory(struct super_block *, secno bmp);
|
secno *hpfs_load_bitmap_directory(struct super_block *, secno bmp);
|
||||||
struct fnode *hpfs_map_fnode(struct super_block *s, ino_t, struct buffer_head **);
|
struct fnode *hpfs_map_fnode(struct super_block *s, ino_t, struct buffer_head **);
|
||||||
|
|
|
@ -8,12 +8,12 @@
|
||||||
|
|
||||||
#include "hpfs_fn.h"
|
#include "hpfs_fn.h"
|
||||||
|
|
||||||
unsigned *hpfs_map_dnode_bitmap(struct super_block *s, struct quad_buffer_head *qbh)
|
__le32 *hpfs_map_dnode_bitmap(struct super_block *s, struct quad_buffer_head *qbh)
|
||||||
{
|
{
|
||||||
return hpfs_map_4sectors(s, hpfs_sb(s)->sb_dmap, qbh, 0);
|
return hpfs_map_4sectors(s, hpfs_sb(s)->sb_dmap, qbh, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int *hpfs_map_bitmap(struct super_block *s, unsigned bmp_block,
|
__le32 *hpfs_map_bitmap(struct super_block *s, unsigned bmp_block,
|
||||||
struct quad_buffer_head *qbh, char *id)
|
struct quad_buffer_head *qbh, char *id)
|
||||||
{
|
{
|
||||||
secno sec;
|
secno sec;
|
||||||
|
|
Loading…
Reference in New Issue