aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ext4/file.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/ext4/file.c')
-rw-r--r--fs/ext4/file.c16
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 }