]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - releases/4.4.172/f2fs-clean-up-with-is_valid_blkaddr.patch
Drop nfc patches from older trees
[thirdparty/kernel/stable-queue.git] / releases / 4.4.172 / f2fs-clean-up-with-is_valid_blkaddr.patch
1 From foo@baz Fri Jan 18 09:16:11 CET 2019
2 From: Chao Yu <yuchao0@huawei.com>
3 Date: Wed, 23 May 2018 22:25:08 +0800
4 Subject: f2fs: clean up with is_valid_blkaddr()
5
6 From: Chao Yu <yuchao0@huawei.com>
7
8 commit 7b525dd01365c6764018e374d391c92466be1b7a upstream.
9
10 - rename is_valid_blkaddr() to is_valid_meta_blkaddr() for readability.
11 - introduce is_valid_blkaddr() for cleanup.
12
13 No logic change in this patch.
14
15 Signed-off-by: Chao Yu <yuchao0@huawei.com>
16 Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
17 [bwh: Backported to 4.4:
18 - Drop inapplicable change to check on f2fs_fio_info::old_blkaddr
19 - Adjust context]
20 Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
21 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
22 ---
23 fs/f2fs/checkpoint.c | 4 ++--
24 fs/f2fs/data.c | 4 ++--
25 fs/f2fs/f2fs.h | 9 ++++++++-
26 fs/f2fs/file.c | 2 +-
27 fs/f2fs/inode.c | 2 +-
28 fs/f2fs/node.c | 5 ++---
29 fs/f2fs/recovery.c | 6 +++---
30 fs/f2fs/segment.c | 4 ++--
31 fs/f2fs/segment.h | 2 +-
32 9 files changed, 22 insertions(+), 16 deletions(-)
33
34 --- a/fs/f2fs/checkpoint.c
35 +++ b/fs/f2fs/checkpoint.c
36 @@ -107,7 +107,7 @@ struct page *get_tmp_page(struct f2fs_sb
37 return __get_meta_page(sbi, index, false);
38 }
39
40 -bool is_valid_blkaddr(struct f2fs_sb_info *sbi, block_t blkaddr, int type)
41 +bool is_valid_meta_blkaddr(struct f2fs_sb_info *sbi, block_t blkaddr, int type)
42 {
43 switch (type) {
44 case META_NAT:
45 @@ -160,7 +160,7 @@ int ra_meta_pages(struct f2fs_sb_info *s
46
47 for (; nrpages-- > 0; blkno++) {
48
49 - if (!is_valid_blkaddr(sbi, blkno, type))
50 + if (!is_valid_meta_blkaddr(sbi, blkno, type))
51 goto out;
52
53 switch (type) {
54 --- a/fs/f2fs/data.c
55 +++ b/fs/f2fs/data.c
56 @@ -604,7 +604,7 @@ static int f2fs_map_blocks(struct inode
57 goto unlock_out;
58 }
59
60 - if (dn.data_blkaddr == NEW_ADDR || dn.data_blkaddr == NULL_ADDR) {
61 + if (!is_valid_blkaddr(dn.data_blkaddr)) {
62 if (create) {
63 if (unlikely(f2fs_cp_error(sbi))) {
64 err = -EIO;
65 @@ -1090,7 +1090,7 @@ int do_write_data_page(struct f2fs_io_in
66 * If current allocation needs SSR,
67 * it had better in-place writes for updated data.
68 */
69 - if (unlikely(fio->blk_addr != NEW_ADDR &&
70 + if (unlikely(is_valid_blkaddr(fio->blk_addr) &&
71 !is_cold_data(page) &&
72 need_inplace_update(inode))) {
73 rewrite_data_page(fio);
74 --- a/fs/f2fs/f2fs.h
75 +++ b/fs/f2fs/f2fs.h
76 @@ -1647,6 +1647,13 @@ static inline void *f2fs_kvzalloc(size_t
77 (pgofs - ADDRS_PER_INODE(fi) + ADDRS_PER_BLOCK) / \
78 ADDRS_PER_BLOCK * ADDRS_PER_BLOCK + ADDRS_PER_INODE(fi))
79
80 +static inline bool is_valid_blkaddr(block_t blkaddr)
81 +{
82 + if (blkaddr == NEW_ADDR || blkaddr == NULL_ADDR)
83 + return false;
84 + return true;
85 +}
86 +
87 /*
88 * file.c
89 */
90 @@ -1818,7 +1825,7 @@ void destroy_segment_manager_caches(void
91 struct page *grab_meta_page(struct f2fs_sb_info *, pgoff_t);
92 struct page *get_meta_page(struct f2fs_sb_info *, pgoff_t);
93 struct page *get_tmp_page(struct f2fs_sb_info *, pgoff_t);
94 -bool is_valid_blkaddr(struct f2fs_sb_info *, block_t, int);
95 +bool is_valid_meta_blkaddr(struct f2fs_sb_info *sbi, block_t blkaddr, int type);
96 int ra_meta_pages(struct f2fs_sb_info *, block_t, int, int, bool);
97 void ra_meta_pages_cond(struct f2fs_sb_info *, pgoff_t);
98 long sync_meta_pages(struct f2fs_sb_info *, enum page_type, long);
99 --- a/fs/f2fs/file.c
100 +++ b/fs/f2fs/file.c
101 @@ -311,7 +311,7 @@ static bool __found_offset(block_t blkad
102 switch (whence) {
103 case SEEK_DATA:
104 if ((blkaddr == NEW_ADDR && dirty == pgofs) ||
105 - (blkaddr != NEW_ADDR && blkaddr != NULL_ADDR))
106 + is_valid_blkaddr(blkaddr))
107 return true;
108 break;
109 case SEEK_HOLE:
110 --- a/fs/f2fs/inode.c
111 +++ b/fs/f2fs/inode.c
112 @@ -54,7 +54,7 @@ static bool __written_first_block(struct
113 {
114 block_t addr = le32_to_cpu(ri->i_addr[0]);
115
116 - if (addr != NEW_ADDR && addr != NULL_ADDR)
117 + if (is_valid_blkaddr(addr))
118 return true;
119 return false;
120 }
121 --- a/fs/f2fs/node.c
122 +++ b/fs/f2fs/node.c
123 @@ -296,8 +296,7 @@ static void set_node_addr(struct f2fs_sb
124 new_blkaddr == NULL_ADDR);
125 f2fs_bug_on(sbi, nat_get_blkaddr(e) == NEW_ADDR &&
126 new_blkaddr == NEW_ADDR);
127 - f2fs_bug_on(sbi, nat_get_blkaddr(e) != NEW_ADDR &&
128 - nat_get_blkaddr(e) != NULL_ADDR &&
129 + f2fs_bug_on(sbi, is_valid_blkaddr(nat_get_blkaddr(e)) &&
130 new_blkaddr == NEW_ADDR);
131
132 /* increment version no as node is removed */
133 @@ -312,7 +311,7 @@ static void set_node_addr(struct f2fs_sb
134
135 /* change address */
136 nat_set_blkaddr(e, new_blkaddr);
137 - if (new_blkaddr == NEW_ADDR || new_blkaddr == NULL_ADDR)
138 + if (!is_valid_blkaddr(new_blkaddr))
139 set_nat_flag(e, IS_CHECKPOINTED, false);
140 __set_nat_cache_dirty(nm_i, e);
141
142 --- a/fs/f2fs/recovery.c
143 +++ b/fs/f2fs/recovery.c
144 @@ -208,7 +208,7 @@ static int find_fsync_dnodes(struct f2fs
145 while (1) {
146 struct fsync_inode_entry *entry;
147
148 - if (!is_valid_blkaddr(sbi, blkaddr, META_POR))
149 + if (!is_valid_meta_blkaddr(sbi, blkaddr, META_POR))
150 return 0;
151
152 page = get_tmp_page(sbi, blkaddr);
153 @@ -443,7 +443,7 @@ static int do_recover_data(struct f2fs_s
154 }
155
156 /* dest is valid block, try to recover from src to dest */
157 - if (is_valid_blkaddr(sbi, dest, META_POR)) {
158 + if (is_valid_meta_blkaddr(sbi, dest, META_POR)) {
159
160 if (src == NULL_ADDR) {
161 err = reserve_new_block(&dn);
162 @@ -494,7 +494,7 @@ static int recover_data(struct f2fs_sb_i
163 while (1) {
164 struct fsync_inode_entry *entry;
165
166 - if (!is_valid_blkaddr(sbi, blkaddr, META_POR))
167 + if (!is_valid_meta_blkaddr(sbi, blkaddr, META_POR))
168 break;
169
170 ra_meta_pages_cond(sbi, blkaddr);
171 --- a/fs/f2fs/segment.c
172 +++ b/fs/f2fs/segment.c
173 @@ -752,7 +752,7 @@ bool is_checkpointed_data(struct f2fs_sb
174 struct seg_entry *se;
175 bool is_cp = false;
176
177 - if (blkaddr == NEW_ADDR || blkaddr == NULL_ADDR)
178 + if (!is_valid_blkaddr(blkaddr))
179 return true;
180
181 mutex_lock(&sit_i->sentry_lock);
182 @@ -1466,7 +1466,7 @@ void f2fs_wait_on_encrypted_page_writeba
183 {
184 struct page *cpage;
185
186 - if (blkaddr == NEW_ADDR)
187 + if (!is_valid_blkaddr(blkaddr))
188 return;
189
190 f2fs_bug_on(sbi, blkaddr == NULL_ADDR);
191 --- a/fs/f2fs/segment.h
192 +++ b/fs/f2fs/segment.h
193 @@ -80,7 +80,7 @@
194 (GET_SEGOFF_FROM_SEG0(sbi, blk_addr) & (sbi->blocks_per_seg - 1))
195
196 #define GET_SEGNO(sbi, blk_addr) \
197 - (((blk_addr == NULL_ADDR) || (blk_addr == NEW_ADDR)) ? \
198 + ((!is_valid_blkaddr(blk_addr)) ? \
199 NULL_SEGNO : GET_L2R_SEGNO(FREE_I(sbi), \
200 GET_SEGNO_FROM_SEG0(sbi, blk_addr)))
201 #define GET_SECNO(sbi, segno) \