Commit 9627dfaf authored by Hirofumi Ogawa's avatar Hirofumi Ogawa Committed by Linus Torvalds

[PATCH] FAT: Remove the multiple MSDOS_SB() call

Since MSDOS_SB() is inline function, it increases text size at each calls.
I don't know whether there is __attribute__ for avoiding this.

This removes the multiple call.
Signed-off-by: default avatarOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent dc359f20
...@@ -205,18 +205,19 @@ int fat_search_long(struct inode *inode, const unsigned char *name, ...@@ -205,18 +205,19 @@ int fat_search_long(struct inode *inode, const unsigned char *name,
int name_len, struct fat_slot_info *sinfo) int name_len, struct fat_slot_info *sinfo)
{ {
struct super_block *sb = inode->i_sb; struct super_block *sb = inode->i_sb;
struct msdos_sb_info *sbi = MSDOS_SB(sb);
struct buffer_head *bh = NULL; struct buffer_head *bh = NULL;
struct msdos_dir_entry *de; struct msdos_dir_entry *de;
struct nls_table *nls_io = MSDOS_SB(sb)->nls_io; struct nls_table *nls_io = sbi->nls_io;
struct nls_table *nls_disk = MSDOS_SB(sb)->nls_disk; struct nls_table *nls_disk = sbi->nls_disk;
wchar_t bufuname[14]; wchar_t bufuname[14];
unsigned char xlate_len, nr_slots; unsigned char xlate_len, nr_slots;
wchar_t *unicode = NULL; wchar_t *unicode = NULL;
unsigned char work[8], bufname[260]; /* 256 + 4 */ unsigned char work[8], bufname[260]; /* 256 + 4 */
int uni_xlate = MSDOS_SB(sb)->options.unicode_xlate; int uni_xlate = sbi->options.unicode_xlate;
int utf8 = MSDOS_SB(sb)->options.utf8; int utf8 = sbi->options.utf8;
int anycase = (MSDOS_SB(sb)->options.name_check != 's'); int anycase = (sbi->options.name_check != 's');
unsigned short opt_shortname = MSDOS_SB(sb)->options.shortname; unsigned short opt_shortname = sbi->options.shortname;
loff_t cpos = 0; loff_t cpos = 0;
int chl, i, j, last_u, err; int chl, i, j, last_u, err;
...@@ -386,10 +387,11 @@ static int fat_readdirx(struct inode *inode, struct file *filp, void *dirent, ...@@ -386,10 +387,11 @@ static int fat_readdirx(struct inode *inode, struct file *filp, void *dirent,
filldir_t filldir, int short_only, int both) filldir_t filldir, int short_only, int both)
{ {
struct super_block *sb = inode->i_sb; struct super_block *sb = inode->i_sb;
struct msdos_sb_info *sbi = MSDOS_SB(sb);
struct buffer_head *bh; struct buffer_head *bh;
struct msdos_dir_entry *de; struct msdos_dir_entry *de;
struct nls_table *nls_io = MSDOS_SB(sb)->nls_io; struct nls_table *nls_io = sbi->nls_io;
struct nls_table *nls_disk = MSDOS_SB(sb)->nls_disk; struct nls_table *nls_disk = sbi->nls_disk;
unsigned char long_slots; unsigned char long_slots;
const char *fill_name; const char *fill_name;
int fill_len; int fill_len;
...@@ -397,11 +399,11 @@ static int fat_readdirx(struct inode *inode, struct file *filp, void *dirent, ...@@ -397,11 +399,11 @@ static int fat_readdirx(struct inode *inode, struct file *filp, void *dirent,
wchar_t *unicode = NULL; wchar_t *unicode = NULL;
unsigned char c, work[8], bufname[56], *ptname = bufname; unsigned char c, work[8], bufname[56], *ptname = bufname;
unsigned long lpos, dummy, *furrfu = &lpos; unsigned long lpos, dummy, *furrfu = &lpos;
int uni_xlate = MSDOS_SB(sb)->options.unicode_xlate; int uni_xlate = sbi->options.unicode_xlate;
int isvfat = MSDOS_SB(sb)->options.isvfat; int isvfat = sbi->options.isvfat;
int utf8 = MSDOS_SB(sb)->options.utf8; int utf8 = sbi->options.utf8;
int nocase = MSDOS_SB(sb)->options.nocase; int nocase = sbi->options.nocase;
unsigned short opt_shortname = MSDOS_SB(sb)->options.shortname; unsigned short opt_shortname = sbi->options.shortname;
unsigned long inum; unsigned long inum;
int chi, chl, i, i2, j, last, last_u, dotoffset = 0; int chi, chl, i, i2, j, last, last_u, dotoffset = 0;
loff_t cpos; loff_t cpos;
...@@ -513,7 +515,7 @@ static int fat_readdirx(struct inode *inode, struct file *filp, void *dirent, ...@@ -513,7 +515,7 @@ static int fat_readdirx(struct inode *inode, struct file *filp, void *dirent,
long_slots = 0; long_slots = 0;
} }
if (MSDOS_SB(sb)->options.dotsOK) { if (sbi->options.dotsOK) {
ptname = bufname; ptname = bufname;
dotoffset = 0; dotoffset = 0;
if (de->attr & ATTR_HIDDEN) { if (de->attr & ATTR_HIDDEN) {
......
...@@ -301,6 +301,7 @@ static int vfat_create_shortname(struct inode *dir, struct nls_table *nls, ...@@ -301,6 +301,7 @@ static int vfat_create_shortname(struct inode *dir, struct nls_table *nls,
wchar_t *uname, int ulen, wchar_t *uname, int ulen,
unsigned char *name_res, unsigned char *lcase) unsigned char *name_res, unsigned char *lcase)
{ {
struct fat_mount_options *opts = &MSDOS_SB(dir->i_sb)->options;
wchar_t *ip, *ext_start, *end, *name_start; wchar_t *ip, *ext_start, *end, *name_start;
unsigned char base[9], ext[4], buf[8], *p; unsigned char base[9], ext[4], buf[8], *p;
unsigned char charbuf[NLS_MAX_CHARSET_SIZE]; unsigned char charbuf[NLS_MAX_CHARSET_SIZE];
...@@ -308,7 +309,6 @@ static int vfat_create_shortname(struct inode *dir, struct nls_table *nls, ...@@ -308,7 +309,6 @@ static int vfat_create_shortname(struct inode *dir, struct nls_table *nls,
int sz = 0, extlen, baselen, i, numtail_baselen, numtail2_baselen; int sz = 0, extlen, baselen, i, numtail_baselen, numtail2_baselen;
int is_shortname; int is_shortname;
struct shortname_info base_info, ext_info; struct shortname_info base_info, ext_info;
unsigned short opt_shortname = MSDOS_SB(dir->i_sb)->options.shortname;
is_shortname = 1; is_shortname = 1;
INIT_SHORTNAME_INFO(&base_info); INIT_SHORTNAME_INFO(&base_info);
...@@ -421,9 +421,9 @@ static int vfat_create_shortname(struct inode *dir, struct nls_table *nls, ...@@ -421,9 +421,9 @@ static int vfat_create_shortname(struct inode *dir, struct nls_table *nls,
if (vfat_find_form(dir, name_res) == 0) if (vfat_find_form(dir, name_res) == 0)
return -EEXIST; return -EEXIST;
if (opt_shortname & VFAT_SFN_CREATE_WIN95) { if (opts->shortname & VFAT_SFN_CREATE_WIN95) {
return (base_info.upper && ext_info.upper); return (base_info.upper && ext_info.upper);
} else if (opt_shortname & VFAT_SFN_CREATE_WINNT) { } else if (opts->shortname & VFAT_SFN_CREATE_WINNT) {
if ((base_info.upper || base_info.lower) && if ((base_info.upper || base_info.lower) &&
(ext_info.upper || ext_info.lower)) { (ext_info.upper || ext_info.lower)) {
if (!base_info.upper && base_info.lower) if (!base_info.upper && base_info.lower)
...@@ -438,7 +438,7 @@ static int vfat_create_shortname(struct inode *dir, struct nls_table *nls, ...@@ -438,7 +438,7 @@ static int vfat_create_shortname(struct inode *dir, struct nls_table *nls,
} }
} }
if (MSDOS_SB(dir->i_sb)->options.numtail == 0) if (opts->numtail == 0)
if (vfat_find_form(dir, name_res) < 0) if (vfat_find_form(dir, name_res) < 0)
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment