]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - fs/ext4/file.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[karo-tx-linux.git] / fs / ext4 / file.c
index c00ea7945eb5ac9bc248aee289b580dabe690c1b..64848b595b243018d87c8a213066e90c590d48bb 100644 (file)
@@ -240,7 +240,7 @@ static int ext4_file_open(struct inode * inode, struct file * filp)
                        handle_t *handle;
                        int err;
 
-                       handle = ext4_journal_start_sb(sb, 1);
+                       handle = ext4_journal_start_sb(sb, EXT4_HT_MISC, 1);
                        if (IS_ERR(handle))
                                return PTR_ERR(handle);
                        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)
                 * If there is a delay extent at this offset,
                 * it will be as a data.
                 */
-               es.start = last;
-               (void)ext4_es_find_extent(inode, &es);
-               if (last >= es.start &&
-                   last < es.start + es.len) {
+               ext4_es_find_delayed_extent(inode, last, &es);
+               if (es.es_len != 0 && in_range(last, es.es_lblk, es.es_len)) {
                        if (last != start)
                                dataoff = last << blkbits;
                        break;
@@ -549,11 +547,9 @@ static loff_t ext4_seek_hole(struct file *file, loff_t offset, loff_t maxsize)
                 * If there is a delay extent at this offset,
                 * we will skip this extent.
                 */
-               es.start = last;
-               (void)ext4_es_find_extent(inode, &es);
-               if (last >= es.start &&
-                   last < es.start + es.len) {
-                       last = es.start + es.len;
+               ext4_es_find_delayed_extent(inode, last, &es);
+               if (es.es_len != 0 && in_range(last, es.es_lblk, es.es_len)) {
+                       last = es.es_lblk + es.es_len;
                        holeoff = last << blkbits;
                        continue;
                }