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; |