* [PATCH 1/5] f2fs: fix to show tracepoint correctly
@ 2020-02-24 11:20 Chao Yu
2020-02-24 11:20 ` [PATCH 2/5] f2fs: fix to avoid potential deadlock Chao Yu
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Chao Yu @ 2020-02-24 11:20 UTC (permalink / raw)
To: jaegeuk; +Cc: linux-f2fs-devel, linux-kernel, chao, Chao Yu
Signed-off-by: Chao Yu <yuchao0@huawei.com>
---
fs/f2fs/file.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index 613f87151d90..13f3454ceb92 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -3649,8 +3649,10 @@ static ssize_t f2fs_file_write_iter(struct kiocb *iocb, struct iov_iter *from)
goto out;
}
- if (!f2fs_is_compress_backend_ready(inode))
- return -EOPNOTSUPP;
+ if (!f2fs_is_compress_backend_ready(inode)) {
+ ret = -EOPNOTSUPP;
+ goto out;
+ }
if (iocb->ki_flags & IOCB_NOWAIT) {
if (!inode_trylock(inode)) {
--
2.18.0.rc1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/5] f2fs: fix to avoid potential deadlock
2020-02-24 11:20 [PATCH 1/5] f2fs: fix to show tracepoint correctly Chao Yu
@ 2020-02-24 11:20 ` Chao Yu
2020-02-24 11:20 ` [PATCH 3/5] f2fs: fix to avoid NULL pointer dereference Chao Yu
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Chao Yu @ 2020-02-24 11:20 UTC (permalink / raw)
To: jaegeuk; +Cc: linux-f2fs-devel, linux-kernel, chao, Chao Yu
Using f2fs_trylock_op() in f2fs_write_compressed_pages() to avoid potential
deadlock like we did in f2fs_write_single_data_page().
Signed-off-by: Chao Yu <yuchao0@huawei.com>
---
fs/f2fs/compress.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/fs/f2fs/compress.c b/fs/f2fs/compress.c
index b1bc057ee266..4ba65a3b0456 100644
--- a/fs/f2fs/compress.c
+++ b/fs/f2fs/compress.c
@@ -772,7 +772,6 @@ static int f2fs_write_compressed_pages(struct compress_ctx *cc,
.encrypted_page = NULL,
.compressed_page = NULL,
.submitted = false,
- .need_lock = LOCK_RETRY,
.io_type = io_type,
.io_wbc = wbc,
.encrypted = f2fs_encrypted_file(cc->inode),
@@ -785,9 +784,10 @@ static int f2fs_write_compressed_pages(struct compress_ctx *cc,
loff_t psize;
int i, err;
- set_new_dnode(&dn, cc->inode, NULL, NULL, 0);
+ if (!f2fs_trylock_op(sbi))
+ return -EAGAIN;
- f2fs_lock_op(sbi);
+ set_new_dnode(&dn, cc->inode, NULL, NULL, 0);
err = f2fs_get_dnode_of_data(&dn, start_idx, LOOKUP_NODE);
if (err)
--
2.18.0.rc1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 3/5] f2fs: fix to avoid NULL pointer dereference
2020-02-24 11:20 [PATCH 1/5] f2fs: fix to show tracepoint correctly Chao Yu
2020-02-24 11:20 ` [PATCH 2/5] f2fs: fix to avoid potential deadlock Chao Yu
@ 2020-02-24 11:20 ` Chao Yu
2020-02-24 11:20 ` [PATCH 4/5] f2fs: recycle unused compress_data.chksum feild Chao Yu
2020-02-24 11:20 ` [PATCH 5/5] f2fs: add missing function name in kernel message Chao Yu
3 siblings, 0 replies; 5+ messages in thread
From: Chao Yu @ 2020-02-24 11:20 UTC (permalink / raw)
To: jaegeuk; +Cc: linux-f2fs-devel, linux-kernel, chao, Chao Yu
Unable to handle kernel NULL pointer dereference at virtual address 00000000
PC is at f2fs_free_dic+0x60/0x2c8
LR is at f2fs_decompress_pages+0x3c4/0x3e8
f2fs_free_dic+0x60/0x2c8
f2fs_decompress_pages+0x3c4/0x3e8
__read_end_io+0x78/0x19c
f2fs_post_read_work+0x6c/0x94
process_one_work+0x210/0x48c
worker_thread+0x2e8/0x44c
kthread+0x110/0x120
ret_from_fork+0x10/0x18
In f2fs_free_dic(), we can not use f2fs_put_page(,1) to release dic->tpages[i],
as the page's mapping is NULL.
Signed-off-by: Chao Yu <yuchao0@huawei.com>
---
fs/f2fs/compress.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/fs/f2fs/compress.c b/fs/f2fs/compress.c
index 4ba65a3b0456..864035549329 100644
--- a/fs/f2fs/compress.c
+++ b/fs/f2fs/compress.c
@@ -1133,7 +1133,8 @@ void f2fs_free_dic(struct decompress_io_ctx *dic)
for (i = 0; i < dic->cluster_size; i++) {
if (dic->rpages[i])
continue;
- f2fs_put_page(dic->tpages[i], 1);
+ unlock_page(dic->tpages[i]);
+ put_page(dic->tpages[i]);
}
kfree(dic->tpages);
}
--
2.18.0.rc1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 4/5] f2fs: recycle unused compress_data.chksum feild
2020-02-24 11:20 [PATCH 1/5] f2fs: fix to show tracepoint correctly Chao Yu
2020-02-24 11:20 ` [PATCH 2/5] f2fs: fix to avoid potential deadlock Chao Yu
2020-02-24 11:20 ` [PATCH 3/5] f2fs: fix to avoid NULL pointer dereference Chao Yu
@ 2020-02-24 11:20 ` Chao Yu
2020-02-24 11:20 ` [PATCH 5/5] f2fs: add missing function name in kernel message Chao Yu
3 siblings, 0 replies; 5+ messages in thread
From: Chao Yu @ 2020-02-24 11:20 UTC (permalink / raw)
To: jaegeuk; +Cc: linux-f2fs-devel, linux-kernel, chao, Chao Yu
In Struct compress_data, chksum field was never used, remove it.
Signed-off-by: Chao Yu <yuchao0@huawei.com>
---
fs/f2fs/compress.c | 1 -
fs/f2fs/f2fs.h | 3 +--
2 files changed, 1 insertion(+), 3 deletions(-)
diff --git a/fs/f2fs/compress.c b/fs/f2fs/compress.c
index 864035549329..e8b88f7bb7a5 100644
--- a/fs/f2fs/compress.c
+++ b/fs/f2fs/compress.c
@@ -380,7 +380,6 @@ static int f2fs_compress_pages(struct compress_ctx *cc)
}
cc->cbuf->clen = cpu_to_le32(cc->clen);
- cc->cbuf->chksum = cpu_to_le32(0);
for (i = 0; i < COMPRESS_DATA_RESERVED_SIZE; i++)
cc->cbuf->reserved[i] = cpu_to_le32(0);
diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h
index 468f807fd917..bd264d8cddaf 100644
--- a/fs/f2fs/f2fs.h
+++ b/fs/f2fs/f2fs.h
@@ -1233,10 +1233,9 @@ enum compress_algorithm_type {
COMPRESS_MAX,
};
-#define COMPRESS_DATA_RESERVED_SIZE 4
+#define COMPRESS_DATA_RESERVED_SIZE 5
struct compress_data {
__le32 clen; /* compressed data size */
- __le32 chksum; /* checksum of compressed data */
__le32 reserved[COMPRESS_DATA_RESERVED_SIZE]; /* reserved */
u8 cdata[]; /* compressed data */
};
--
2.18.0.rc1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 5/5] f2fs: add missing function name in kernel message
2020-02-24 11:20 [PATCH 1/5] f2fs: fix to show tracepoint correctly Chao Yu
` (2 preceding siblings ...)
2020-02-24 11:20 ` [PATCH 4/5] f2fs: recycle unused compress_data.chksum feild Chao Yu
@ 2020-02-24 11:20 ` Chao Yu
3 siblings, 0 replies; 5+ messages in thread
From: Chao Yu @ 2020-02-24 11:20 UTC (permalink / raw)
To: jaegeuk; +Cc: linux-f2fs-devel, linux-kernel, chao, Chao Yu
Otherwise, we can not distinguish the exact location of messages,
when there are more than one places printing same message.
Signed-off-by: Chao Yu <yuchao0@huawei.com>
---
fs/f2fs/f2fs.h | 2 +-
fs/f2fs/node.c | 5 +++--
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h
index bd264d8cddaf..4a02edc2454b 100644
--- a/fs/f2fs/f2fs.h
+++ b/fs/f2fs/f2fs.h
@@ -2231,7 +2231,7 @@ static inline void dec_valid_node_count(struct f2fs_sb_info *sbi,
dquot_free_inode(inode);
} else {
if (unlikely(inode->i_blocks == 0)) {
- f2fs_warn(sbi, "Inconsistent i_blocks, ino:%lu, iblocks:%llu",
+ f2fs_warn(sbi, "dec_valid_node_count: inconsistent i_blocks, ino:%lu, iblocks:%llu",
inode->i_ino,
(unsigned long long)inode->i_blocks);
set_sbi_flag(sbi, SBI_NEED_FSCK);
diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c
index 040ffb09a126..951c66d63350 100644
--- a/fs/f2fs/node.c
+++ b/fs/f2fs/node.c
@@ -1187,8 +1187,9 @@ int f2fs_remove_inode_page(struct inode *inode)
}
if (unlikely(inode->i_blocks != 0 && inode->i_blocks != 8)) {
- f2fs_warn(F2FS_I_SB(inode), "Inconsistent i_blocks, ino:%lu, iblocks:%llu",
- inode->i_ino, (unsigned long long)inode->i_blocks);
+ f2fs_warn(F2FS_I_SB(inode),
+ "f2fs_remove_inode_page: inconsistent i_blocks, ino:%lu, iblocks:%llu",
+ inode->i_ino, (unsigned long long)inode->i_blocks);
set_sbi_flag(F2FS_I_SB(inode), SBI_NEED_FSCK);
}
--
2.18.0.rc1
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2020-02-24 11:20 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-24 11:20 [PATCH 1/5] f2fs: fix to show tracepoint correctly Chao Yu
2020-02-24 11:20 ` [PATCH 2/5] f2fs: fix to avoid potential deadlock Chao Yu
2020-02-24 11:20 ` [PATCH 3/5] f2fs: fix to avoid NULL pointer dereference Chao Yu
2020-02-24 11:20 ` [PATCH 4/5] f2fs: recycle unused compress_data.chksum feild Chao Yu
2020-02-24 11:20 ` [PATCH 5/5] f2fs: add missing function name in kernel message Chao Yu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).