Skip to content

Commit ec5c045

Browse files
Christoph Hellwigaxboe
authored andcommitted
zloop: factor out zloop_mark_{full,empty} helpers
Move a few chunks of duplicated code into helpers. Signed-off-by: Christoph Hellwig <[email protected]> Reviewed-by: Damien Le Moal <[email protected]> Reviewed-by: Johannes Thumshirn <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jens Axboe <[email protected]>
1 parent 5b680d7 commit ec5c045

1 file changed

Lines changed: 26 additions & 22 deletions

File tree

drivers/block/zloop.c

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,24 @@ static bool zloop_do_open_zone(struct zloop_device *zlo,
288288
}
289289
}
290290

291+
static void zloop_mark_full(struct zloop_device *zlo, struct zloop_zone *zone)
292+
{
293+
lockdep_assert_held(&zone->wp_lock);
294+
295+
zloop_lru_remove_open_zone(zlo, zone);
296+
zone->cond = BLK_ZONE_COND_FULL;
297+
zone->wp = ULLONG_MAX;
298+
}
299+
300+
static void zloop_mark_empty(struct zloop_device *zlo, struct zloop_zone *zone)
301+
{
302+
lockdep_assert_held(&zone->wp_lock);
303+
304+
zloop_lru_remove_open_zone(zlo, zone);
305+
zone->cond = BLK_ZONE_COND_EMPTY;
306+
zone->wp = zone->start;
307+
}
308+
291309
static int zloop_update_seq_zone(struct zloop_device *zlo, unsigned int zone_no)
292310
{
293311
struct zloop_zone *zone = &zlo->zones[zone_no];
@@ -321,13 +339,9 @@ static int zloop_update_seq_zone(struct zloop_device *zlo, unsigned int zone_no)
321339

322340
spin_lock_irqsave(&zone->wp_lock, flags);
323341
if (!file_sectors) {
324-
zloop_lru_remove_open_zone(zlo, zone);
325-
zone->cond = BLK_ZONE_COND_EMPTY;
326-
zone->wp = zone->start;
342+
zloop_mark_empty(zlo, zone);
327343
} else if (file_sectors == zlo->zone_capacity) {
328-
zloop_lru_remove_open_zone(zlo, zone);
329-
zone->cond = BLK_ZONE_COND_FULL;
330-
zone->wp = ULLONG_MAX;
344+
zloop_mark_full(zlo, zone);
331345
} else {
332346
if (zone->cond != BLK_ZONE_COND_IMP_OPEN &&
333347
zone->cond != BLK_ZONE_COND_EXP_OPEN)
@@ -429,9 +443,7 @@ static int zloop_reset_zone(struct zloop_device *zlo, unsigned int zone_no)
429443
}
430444

431445
spin_lock_irqsave(&zone->wp_lock, flags);
432-
zloop_lru_remove_open_zone(zlo, zone);
433-
zone->cond = BLK_ZONE_COND_EMPTY;
434-
zone->wp = zone->start;
446+
zloop_mark_empty(zlo, zone);
435447
clear_bit(ZLOOP_ZONE_SEQ_ERROR, &zone->flags);
436448
spin_unlock_irqrestore(&zone->wp_lock, flags);
437449

@@ -477,9 +489,7 @@ static int zloop_finish_zone(struct zloop_device *zlo, unsigned int zone_no)
477489
}
478490

479491
spin_lock_irqsave(&zone->wp_lock, flags);
480-
zloop_lru_remove_open_zone(zlo, zone);
481-
zone->cond = BLK_ZONE_COND_FULL;
482-
zone->wp = ULLONG_MAX;
492+
zloop_mark_full(zlo, zone);
483493
clear_bit(ZLOOP_ZONE_SEQ_ERROR, &zone->flags);
484494
spin_unlock_irqrestore(&zone->wp_lock, flags);
485495

@@ -616,11 +626,8 @@ static int zloop_seq_write_prep(struct zloop_cmd *cmd)
616626
*/
617627
if (!is_append || !zlo->ordered_zone_append) {
618628
zone->wp += nr_sectors;
619-
if (zone->wp == zone_end) {
620-
zloop_lru_remove_open_zone(zlo, zone);
621-
zone->cond = BLK_ZONE_COND_FULL;
622-
zone->wp = ULLONG_MAX;
623-
}
629+
if (zone->wp == zone_end)
630+
zloop_mark_full(zlo, zone);
624631
}
625632
out_unlock:
626633
spin_unlock_irqrestore(&zone->wp_lock, flags);
@@ -873,11 +880,8 @@ static bool zloop_set_zone_append_sector(struct request *rq)
873880

874881
rq->__sector = zone->wp;
875882
zone->wp += blk_rq_sectors(rq);
876-
if (zone->wp >= zone_end) {
877-
zloop_lru_remove_open_zone(zlo, zone);
878-
zone->cond = BLK_ZONE_COND_FULL;
879-
zone->wp = ULLONG_MAX;
880-
}
883+
if (zone->wp >= zone_end)
884+
zloop_mark_full(zlo, zone);
881885

882886
spin_unlock_irqrestore(&zone->wp_lock, flags);
883887

0 commit comments

Comments
 (0)