diff options
Diffstat (limited to 'fs/ext4/file.c')
-rw-r--r-- | fs/ext4/file.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/fs/ext4/file.c b/fs/ext4/file.c index 405565a62277..7e85a10a6f4f 100644 --- a/fs/ext4/file.c +++ b/fs/ext4/file.c | |||
@@ -240,7 +240,7 @@ static int ext4_file_open(struct inode * inode, struct file * filp) | |||
240 | handle_t *handle; | 240 | handle_t *handle; |
241 | int err; | 241 | int err; |
242 | 242 | ||
243 | handle = ext4_journal_start_sb(sb, 1); | 243 | handle = ext4_journal_start_sb(sb, EXT4_HT_MISC, 1); |
244 | if (IS_ERR(handle)) | 244 | if (IS_ERR(handle)) |
245 | return PTR_ERR(handle); | 245 | return PTR_ERR(handle); |
246 | err = ext4_journal_get_write_access(handle, sbi->s_sbh); | 246 | err = ext4_journal_get_write_access(handle, sbi->s_sbh); |
@@ -464,10 +464,8 @@ static loff_t ext4_seek_data(struct file *file, loff_t offset, loff_t maxsize) | |||
464 | * If there is a delay extent at this offset, | 464 | * If there is a delay extent at this offset, |
465 | * it will be as a data. | 465 | * it will be as a data. |
466 | */ | 466 | */ |
467 | es.start = last; | 467 | ext4_es_find_delayed_extent(inode, last, &es); |
468 | (void)ext4_es_find_extent(inode, &es); | 468 | if (es.es_len != 0 && in_range(last, es.es_lblk, es.es_len)) { |
469 | if (last >= es.start && | ||
470 | last < es.start + es.len) { | ||
471 | if (last != start) | 469 | if (last != start) |
472 | dataoff = last << blkbits; | 470 | dataoff = last << blkbits; |
473 | break; | 471 | break; |
@@ -549,11 +547,9 @@ static loff_t ext4_seek_hole(struct file *file, loff_t offset, loff_t maxsize) | |||
549 | * If there is a delay extent at this offset, | 547 | * If there is a delay extent at this offset, |
550 | * we will skip this extent. | 548 | * we will skip this extent. |
551 | */ | 549 | */ |
552 | es.start = last; | 550 | ext4_es_find_delayed_extent(inode, last, &es); |
553 | (void)ext4_es_find_extent(inode, &es); | 551 | if (es.es_len != 0 && in_range(last, es.es_lblk, es.es_len)) { |
554 | if (last >= es.start && | 552 | last = es.es_lblk + es.es_len; |
555 | last < es.start + es.len) { | ||
556 | last = es.start + es.len; | ||
557 | holeoff = last << blkbits; | 553 | holeoff = last << blkbits; |
558 | continue; | 554 | continue; |
559 | } | 555 | } |