In the punch_hole(), let's convert inline_data all the time for simplicity and
to avoid potential deadlock conditions.
It is pretty much not a big deal to do this.

Signed-off-by: Jaegeuk Kim <[email protected]>
---
 fs/f2fs/file.c | 22 +++-------------------
 1 file changed, 3 insertions(+), 19 deletions(-)

diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index 7ef2d6a..f64a1c8 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -462,25 +462,9 @@ static int punch_hole(struct inode *inode, loff_t offset, 
loff_t len)
        loff_t off_start, off_end;
        int ret = 0;
 
-       if (f2fs_has_inline_data(inode)) {
-               struct page *page;
-               unsigned flags = AOP_FLAG_NOFS;
-               page = grab_cache_page_write_begin(inode->i_mapping, 0, flags);
-               if (IS_ERR(page))
-                       return PTR_ERR(page);
-               if (offset + len > MAX_INLINE_DATA) {
-                       ret = f2fs_convert_inline_data(inode, page, flags);
-                       f2fs_put_page(page, 1);
-                       if (ret)
-                               return ret;
-               } else {
-                       zero_user_segment(page, offset, offset + len);
-                       SetPageUptodate(page);
-                       set_page_dirty(page);
-                       f2fs_put_page(page, 1);
-                       return ret;
-               }
-       }
+       ret = f2fs_convert_inline_data(inode, NULL, AOP_FLAG_NOFS);
+       if (ret)
+               return ret;
 
        pg_start = ((unsigned long long) offset) >> PAGE_CACHE_SHIFT;
        pg_end = ((unsigned long long) offset + len) >> PAGE_CACHE_SHIFT;
-- 
1.8.4.474.g128a96c


------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to