Skip to content

Commit 4d020b3

Browse files
committed
dm writecache: factor out writecache_map_remap_origin()
Signed-off-by: Mike Snitzer <[email protected]>
1 parent cdd4d78 commit 4d020b3

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed

drivers/md/dm-writecache.c

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1301,6 +1301,19 @@ enum wc_map_op {
13011301
WC_MAP_ERROR,
13021302
};
13031303

1304+
static enum wc_map_op writecache_map_remap_origin(struct dm_writecache *wc, struct bio *bio,
1305+
struct wc_entry *e)
1306+
{
1307+
if (e) {
1308+
sector_t next_boundary =
1309+
read_original_sector(wc, e) - bio->bi_iter.bi_sector;
1310+
if (next_boundary < bio->bi_iter.bi_size >> SECTOR_SHIFT)
1311+
dm_accept_partial_bio(bio, next_boundary);
1312+
}
1313+
1314+
return WC_MAP_REMAP_ORIGIN;
1315+
}
1316+
13041317
static enum wc_map_op writecache_map_read(struct dm_writecache *wc, struct bio *bio)
13051318
{
13061319
enum wc_map_op map_op;
@@ -1323,13 +1336,7 @@ static enum wc_map_op writecache_map_read(struct dm_writecache *wc, struct bio *
13231336
map_op = WC_MAP_REMAP;
13241337
}
13251338
} else {
1326-
if (e) {
1327-
sector_t next_boundary =
1328-
read_original_sector(wc, e) - bio->bi_iter.bi_sector;
1329-
if (next_boundary < bio->bi_iter.bi_size >> SECTOR_SHIFT)
1330-
dm_accept_partial_bio(bio, next_boundary);
1331-
}
1332-
map_op = WC_MAP_REMAP_ORIGIN;
1339+
map_op = writecache_map_remap_origin(wc, bio, e);
13331340
}
13341341

13351342
return map_op;
@@ -1417,14 +1424,7 @@ static enum wc_map_op writecache_map_write(struct dm_writecache *wc, struct bio
14171424
if (!WC_MODE_PMEM(wc) && !found_entry) {
14181425
direct_write:
14191426
e = writecache_find_entry(wc, bio->bi_iter.bi_sector, WFE_RETURN_FOLLOWING);
1420-
if (e) {
1421-
sector_t next_boundary = read_original_sector(wc, e) - bio->bi_iter.bi_sector;
1422-
BUG_ON(!next_boundary);
1423-
if (next_boundary < bio->bi_iter.bi_size >> SECTOR_SHIFT) {
1424-
dm_accept_partial_bio(bio, next_boundary);
1425-
}
1426-
}
1427-
return WC_MAP_REMAP_ORIGIN;
1427+
return writecache_map_remap_origin(wc, bio, e);
14281428
}
14291429
writecache_wait_on_freelist(wc);
14301430
continue;

0 commit comments

Comments
 (0)