diff options
Diffstat (limited to 'fs/fat/dir.c')
-rw-r--r-- | fs/fat/dir.c | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/fs/fat/dir.c b/fs/fat/dir.c index ba824964b9bb..db0de5c621c7 100644 --- a/fs/fat/dir.c +++ b/fs/fat/dir.c | |||
@@ -45,8 +45,8 @@ static inline void fat_dir_readahead(struct inode *dir, sector_t iblock, | |||
45 | if ((sbi->fat_bits != 32) && (dir->i_ino == MSDOS_ROOT_INO)) | 45 | if ((sbi->fat_bits != 32) && (dir->i_ino == MSDOS_ROOT_INO)) |
46 | return; | 46 | return; |
47 | 47 | ||
48 | bh = sb_getblk(sb, phys); | 48 | bh = sb_find_get_block(sb, phys); |
49 | if (bh && !buffer_uptodate(bh)) { | 49 | if (bh == NULL || !buffer_uptodate(bh)) { |
50 | for (sec = 0; sec < sbi->sec_per_clus; sec++) | 50 | for (sec = 0; sec < sbi->sec_per_clus; sec++) |
51 | sb_breadahead(sb, phys + sec); | 51 | sb_breadahead(sb, phys + sec); |
52 | } | 52 | } |
@@ -68,8 +68,8 @@ static int fat__get_entry(struct inode *dir, loff_t *pos, | |||
68 | { | 68 | { |
69 | struct super_block *sb = dir->i_sb; | 69 | struct super_block *sb = dir->i_sb; |
70 | sector_t phys, iblock; | 70 | sector_t phys, iblock; |
71 | int offset; | 71 | unsigned long mapped_blocks; |
72 | int err; | 72 | int err, offset; |
73 | 73 | ||
74 | next: | 74 | next: |
75 | if (*bh) | 75 | if (*bh) |
@@ -77,7 +77,7 @@ next: | |||
77 | 77 | ||
78 | *bh = NULL; | 78 | *bh = NULL; |
79 | iblock = *pos >> sb->s_blocksize_bits; | 79 | iblock = *pos >> sb->s_blocksize_bits; |
80 | err = fat_bmap(dir, iblock, &phys); | 80 | err = fat_bmap(dir, iblock, &phys, &mapped_blocks); |
81 | if (err || !phys) | 81 | if (err || !phys) |
82 | return -1; /* beyond EOF or error */ | 82 | return -1; /* beyond EOF or error */ |
83 | 83 | ||
@@ -418,7 +418,7 @@ EODir: | |||
418 | return err; | 418 | return err; |
419 | } | 419 | } |
420 | 420 | ||
421 | EXPORT_SYMBOL(fat_search_long); | 421 | EXPORT_SYMBOL_GPL(fat_search_long); |
422 | 422 | ||
423 | struct fat_ioctl_filldir_callback { | 423 | struct fat_ioctl_filldir_callback { |
424 | struct dirent __user *dirent; | 424 | struct dirent __user *dirent; |
@@ -729,13 +729,13 @@ static int fat_dir_ioctl(struct inode * inode, struct file * filp, | |||
729 | 729 | ||
730 | buf.dirent = d1; | 730 | buf.dirent = d1; |
731 | buf.result = 0; | 731 | buf.result = 0; |
732 | down(&inode->i_sem); | 732 | mutex_lock(&inode->i_mutex); |
733 | ret = -ENOENT; | 733 | ret = -ENOENT; |
734 | if (!IS_DEADDIR(inode)) { | 734 | if (!IS_DEADDIR(inode)) { |
735 | ret = __fat_readdir(inode, filp, &buf, fat_ioctl_filldir, | 735 | ret = __fat_readdir(inode, filp, &buf, fat_ioctl_filldir, |
736 | short_only, both); | 736 | short_only, both); |
737 | } | 737 | } |
738 | up(&inode->i_sem); | 738 | mutex_unlock(&inode->i_mutex); |
739 | if (ret >= 0) | 739 | if (ret >= 0) |
740 | ret = buf.result; | 740 | ret = buf.result; |
741 | return ret; | 741 | return ret; |
@@ -780,7 +780,7 @@ int fat_get_dotdot_entry(struct inode *dir, struct buffer_head **bh, | |||
780 | return -ENOENT; | 780 | return -ENOENT; |
781 | } | 781 | } |
782 | 782 | ||
783 | EXPORT_SYMBOL(fat_get_dotdot_entry); | 783 | EXPORT_SYMBOL_GPL(fat_get_dotdot_entry); |
784 | 784 | ||
785 | /* See if directory is empty */ | 785 | /* See if directory is empty */ |
786 | int fat_dir_empty(struct inode *dir) | 786 | int fat_dir_empty(struct inode *dir) |
@@ -803,7 +803,7 @@ int fat_dir_empty(struct inode *dir) | |||
803 | return result; | 803 | return result; |
804 | } | 804 | } |
805 | 805 | ||
806 | EXPORT_SYMBOL(fat_dir_empty); | 806 | EXPORT_SYMBOL_GPL(fat_dir_empty); |
807 | 807 | ||
808 | /* | 808 | /* |
809 | * fat_subdirs counts the number of sub-directories of dir. It can be run | 809 | * fat_subdirs counts the number of sub-directories of dir. It can be run |
@@ -849,7 +849,7 @@ int fat_scan(struct inode *dir, const unsigned char *name, | |||
849 | return -ENOENT; | 849 | return -ENOENT; |
850 | } | 850 | } |
851 | 851 | ||
852 | EXPORT_SYMBOL(fat_scan); | 852 | EXPORT_SYMBOL_GPL(fat_scan); |
853 | 853 | ||
854 | static int __fat_remove_entries(struct inode *dir, loff_t pos, int nr_slots) | 854 | static int __fat_remove_entries(struct inode *dir, loff_t pos, int nr_slots) |
855 | { | 855 | { |
@@ -936,7 +936,7 @@ int fat_remove_entries(struct inode *dir, struct fat_slot_info *sinfo) | |||
936 | return 0; | 936 | return 0; |
937 | } | 937 | } |
938 | 938 | ||
939 | EXPORT_SYMBOL(fat_remove_entries); | 939 | EXPORT_SYMBOL_GPL(fat_remove_entries); |
940 | 940 | ||
941 | static int fat_zeroed_cluster(struct inode *dir, sector_t blknr, int nr_used, | 941 | static int fat_zeroed_cluster(struct inode *dir, sector_t blknr, int nr_used, |
942 | struct buffer_head **bhs, int nr_bhs) | 942 | struct buffer_head **bhs, int nr_bhs) |
@@ -1048,7 +1048,7 @@ error: | |||
1048 | return err; | 1048 | return err; |
1049 | } | 1049 | } |
1050 | 1050 | ||
1051 | EXPORT_SYMBOL(fat_alloc_new_dir); | 1051 | EXPORT_SYMBOL_GPL(fat_alloc_new_dir); |
1052 | 1052 | ||
1053 | static int fat_add_new_entries(struct inode *dir, void *slots, int nr_slots, | 1053 | static int fat_add_new_entries(struct inode *dir, void *slots, int nr_slots, |
1054 | int *nr_cluster, struct msdos_dir_entry **de, | 1054 | int *nr_cluster, struct msdos_dir_entry **de, |
@@ -1264,4 +1264,4 @@ error_remove: | |||
1264 | return err; | 1264 | return err; |
1265 | } | 1265 | } |
1266 | 1266 | ||
1267 | EXPORT_SYMBOL(fat_add_entries); | 1267 | EXPORT_SYMBOL_GPL(fat_add_entries); |