diff options
Diffstat (limited to 'fs/hpfs/dir.c')
| -rw-r--r-- | fs/hpfs/dir.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/hpfs/dir.c b/fs/hpfs/dir.c index 0217c3a04441..5591f9623aa2 100644 --- a/fs/hpfs/dir.c +++ b/fs/hpfs/dir.c | |||
| @@ -32,19 +32,19 @@ static loff_t hpfs_dir_lseek(struct file *filp, loff_t off, int whence) | |||
| 32 | 32 | ||
| 33 | /*printk("dir lseek\n");*/ | 33 | /*printk("dir lseek\n");*/ |
| 34 | if (new_off == 0 || new_off == 1 || new_off == 11 || new_off == 12 || new_off == 13) goto ok; | 34 | if (new_off == 0 || new_off == 1 || new_off == 11 || new_off == 12 || new_off == 13) goto ok; |
| 35 | down(&i->i_sem); | 35 | mutex_lock(&i->i_mutex); |
| 36 | pos = ((loff_t) hpfs_de_as_down_as_possible(s, hpfs_inode->i_dno) << 4) + 1; | 36 | pos = ((loff_t) hpfs_de_as_down_as_possible(s, hpfs_inode->i_dno) << 4) + 1; |
| 37 | while (pos != new_off) { | 37 | while (pos != new_off) { |
| 38 | if (map_pos_dirent(i, &pos, &qbh)) hpfs_brelse4(&qbh); | 38 | if (map_pos_dirent(i, &pos, &qbh)) hpfs_brelse4(&qbh); |
| 39 | else goto fail; | 39 | else goto fail; |
| 40 | if (pos == 12) goto fail; | 40 | if (pos == 12) goto fail; |
| 41 | } | 41 | } |
| 42 | up(&i->i_sem); | 42 | mutex_unlock(&i->i_mutex); |
| 43 | ok: | 43 | ok: |
| 44 | unlock_kernel(); | 44 | unlock_kernel(); |
| 45 | return filp->f_pos = new_off; | 45 | return filp->f_pos = new_off; |
| 46 | fail: | 46 | fail: |
| 47 | up(&i->i_sem); | 47 | mutex_unlock(&i->i_mutex); |
| 48 | /*printk("illegal lseek: %016llx\n", new_off);*/ | 48 | /*printk("illegal lseek: %016llx\n", new_off);*/ |
| 49 | unlock_kernel(); | 49 | unlock_kernel(); |
| 50 | return -ESPIPE; | 50 | return -ESPIPE; |
