clean up write_begin usage for directories in pagecache
[firefly-linux-kernel-4.4.55.git] / fs / sysv / itree.c
index f042eec464c2df768e34a992a0845a82887af77b..4068f485cfd6a04e319c964e7569618a5fd853a6 100644 (file)
@@ -459,12 +459,10 @@ static int sysv_readpage(struct file *file, struct page *page)
        return block_read_full_page(page,get_block);
 }
 
-int __sysv_write_begin(struct file *file, struct address_space *mapping,
-                       loff_t pos, unsigned len, unsigned flags,
-                       struct page **pagep, void **fsdata)
+int sysv_prepare_chunk(struct page *page, loff_t pos, unsigned len)
 {
-       return block_write_begin(file, mapping, pos, len, flags, pagep, fsdata,
-                               get_block);
+       return block_write_begin_newtrunc(NULL, page->mapping, pos, len, 0,
+                                         &page, NULL, get_block);
 }
 
 static int sysv_write_begin(struct file *file, struct address_space *mapping,
@@ -472,7 +470,8 @@ static int sysv_write_begin(struct file *file, struct address_space *mapping,
                        struct page **pagep, void **fsdata)
 {
        *pagep = NULL;
-       return __sysv_write_begin(file, mapping, pos, len, flags, pagep, fsdata);
+       return block_write_begin(file, mapping, pos, len, flags, pagep, fsdata,
+                               get_block);
 }
 
 static sector_t sysv_bmap(struct address_space *mapping, sector_t block)