This patch fixes wrongly counting inline_data inode numbers.
Signed-off-by: Jaegeuk Kim
---
fs/f2fs/inode.c | 4 ++--
fs/f2fs/namei.c | 2 --
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/fs/f2fs/inode.c b/fs/f2fs/inode.c
index b9b1d6b..4131e3c 100644
--- a/fs/f2fs/inode.c
+++ b
This patch introduces a core function, f2fs_fill_dentries, to remove
redundant code in f2fs_readdir and f2fs_read_inline_dir.
Signed-off-by: Jaegeuk Kim
---
fs/f2fs/dir.c| 64 +---
fs/f2fs/f2fs.h | 3 +++
fs/f2fs/inline.c | 39 +++---
Previously, init_inode_metadata does not hold any parent directory's inode
page. So, f2fs_init_acl can grab its parent inode page without any problem.
But, when we use inline_dentry, that page is grabbed during f2fs_add_link,
so that we can fall into deadlock condition like below.
INFO: task mknod
This patch adds status information for inline_dentry inodes.
Signed-off-by: Jaegeuk Kim
---
fs/f2fs/debug.c | 3 +++
fs/f2fs/f2fs.h | 16 ++--
fs/f2fs/inline.c | 2 +-
fs/f2fs/inode.c | 3 +++
fs/f2fs/namei.c | 1 +
5 files changed, 22 insertions(+), 3 deletions(-)
diff --g
If the inode has inline_dentry, we should not truncate any block indices.
Signed-off-by: Jaegeuk Kim
---
fs/f2fs/file.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index d054e0e..402e381 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -
This patch introduces do_make_empty_dir to mitigate code redundancy
for inline_dentry.
Signed-off-by: Jaegeuk Kim
---
fs/f2fs/dir.c| 42 ++
fs/f2fs/f2fs.h | 2 ++
fs/f2fs/inline.c | 20 +++-
3 files changed, 31 insertions(+), 33 dele
For better performance, we need to use kmap_atomic instead of kmap.
Signed-off-by: Jaegeuk Kim
---
fs/f2fs/inline.c | 17 -
1 file changed, 8 insertions(+), 9 deletions(-)
diff --git a/fs/f2fs/inline.c b/fs/f2fs/inline.c
index 825995f..c03653d 100644
--- a/fs/f2fs/inline.c
+++ b
This patch introduces to reuse the existing room_for_filename for inline dentry
operation.
Signed-off-by: Jaegeuk Kim
---
fs/f2fs/dir.c| 21 +
fs/f2fs/f2fs.h | 1 +
fs/f2fs/inline.c | 27 ++-
3 files changed, 12 insertions(+), 37 deletions(-)
d
This patch removes redundant copied code in find_in_inline_dir.
Signed-off-by: Jaegeuk Kim
---
fs/f2fs/dir.c| 72 +++-
fs/f2fs/f2fs.h | 3 ++-
fs/f2fs/inline.c | 52 +---
3 files changed, 64 insertions
This patch introduces f2fs_dentry_ptr structure for the use of a function
parameter in inline_dentry operations.
Signed-off-by: Jaegeuk Kim
---
fs/f2fs/dir.c| 61 +++-
fs/f2fs/f2fs.h | 34 ++-
fs/f2fs/inline.c
The inode page needs to wait NODE block io.
Signed-off-by: Jaegeuk Kim
---
fs/f2fs/dir.c| 3 ++-
fs/f2fs/inline.c | 4 ++--
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/fs/f2fs/dir.c b/fs/f2fs/dir.c
index c60b93f..644b480 100644
--- a/fs/f2fs/dir.c
+++ b/fs/f2fs/dir.c
@@ -2
Let's consider the following scenario.
blkaddr[0] inline_data i_size i_blocks writepage truncate
NEWX40962dirty page #0
NEWX 0change i_size
NEWX 0 2f2fs_write_inline_data
This patch avoids an infinite loop in sync_dirty_inode_page when -EIO was
detected.
Signed-off-by: Jaegeuk Kim
---
fs/f2fs/checkpoint.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c
index dd10a03..ca514d5 100644
--- a/fs/f2fs/checkpoint.c
+++
This patch fixes to call f2fs_unlock_op, which was missing before.
Signed-off-by: Jaegeuk Kim
---
fs/f2fs/file.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index 456df07..80d9a04 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -494,7
When trying to write inline_data, we should truncate any data block allocated
and pointed by the inode block.
We should consider the data index is not 0.
Signed-off-by: Jaegeuk Kim
---
fs/f2fs/inline.c | 15 ---
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/fs/f2fs/in
If user truncates file's data, we should truncate inmemory pages too.
Signed-off-by: Jaegeuk Kim
---
fs/f2fs/data.c| 3 +++
fs/f2fs/f2fs.h| 1 +
fs/f2fs/segment.c | 16
3 files changed, 20 insertions(+)
diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
index 84f20e9..5b80a
This patch fixes to use highmem for directory pages.
Signed-off-by: Jaegeuk Kim
---
fs/f2fs/inode.c | 2 +-
include/linux/f2fs_fs.h | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/fs/f2fs/inode.c b/fs/f2fs/inode.c
index 0deead4..52d6f54 100644
--- a/fs/f2fs/inode.
This patch removes build warning.
Signed-off-by: Jaegeuk Kim
---
fs/f2fs/segment.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c
index 902c4c3..2c1e608 100644
--- a/fs/f2fs/segment.c
+++ b/fs/f2fs/segment.c
@@ -1715,7 +1715,7 @@ void fl
This patch let inmemory pages be clean all the time.
Signed-off-by: Jaegeuk Kim
---
fs/f2fs/data.c| 11 +++
fs/f2fs/f2fs.h| 1 +
fs/f2fs/segment.c | 14 +-
fs/f2fs/super.c | 1 +
4 files changed, 22 insertions(+), 5 deletions(-)
diff --git a/fs/f2fs/data.c b/fs/f
The sceanrio is like this.
inline_data i_size page write_begin/vm_page_mkwrite
X 30 dirty_page
X 30write to #4096 position
X 30 get_dnode_of_datawait for get_dnode_of_data
O 30
20 matches
Mail list logo