[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: [dm-devel] [PATCH 1/4] The return code from the various wait functions is never acted upon. So change to uninterrupible waits and change the return type to void.
- From: Mikulas Patocka <mpatocka redhat com>
- To: Joe Thornber <ejt redhat com>
- Cc: dm-devel redhat com
- Subject: Re: [dm-devel] [PATCH 1/4] The return code from the various wait functions is never acted upon. So change to uninterrupible waits and change the return type to void.
- Date: Wed, 3 Aug 2011 10:42:11 -0400 (EDT)
Ack.
Mikulas
On Tue, 2 Aug 2011, Joe Thornber wrote:
> ---
> drivers/md/persistent-data/dm-block-manager.c | 23 +++++++----------------
> 1 files changed, 7 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/md/persistent-data/dm-block-manager.c b/drivers/md/persistent-data/dm-block-manager.c
> index 4e2f240..c9fb132 100644
> --- a/drivers/md/persistent-data/dm-block-manager.c
> +++ b/drivers/md/persistent-data/dm-block-manager.c
> @@ -371,46 +371,37 @@ static void __clear_errors(struct dm_block_manager *bm)
>
> #define __wait_block(wq, lock, flags, sched_fn, condition) \
> do { \
> - int r = 0; \
> - \
> DEFINE_WAIT(wait); \
> add_wait_queue(wq, &wait); \
> \
> for (;;) { \
> - prepare_to_wait(wq, &wait, TASK_INTERRUPTIBLE); \
> + prepare_to_wait(wq, &wait, TASK_UNINTERRUPTIBLE); \
> if (condition) \
> break; \
> \
> spin_unlock_irqrestore(lock, flags); \
> - if (signal_pending(current)) { \
> - r = -ERESTARTSYS; \
> - spin_lock_irqsave(lock, flags); \
> - break; \
> - } \
> - \
> sched_fn(); \
> spin_lock_irqsave(lock, flags); \
> } \
> \
> finish_wait(wq, &wait); \
> - return r; \
> } while (0)
>
> -static int __wait_io(struct dm_block *b, unsigned long *flags)
> +static void __wait_io(struct dm_block *b, unsigned long *flags)
> __retains(&b->bm->lock)
> {
> __wait_block(&b->io_q, &b->bm->lock, *flags, io_schedule,
> ((b->state != BS_READING) && (b->state != BS_WRITING)));
> }
>
> -static int __wait_unlocked(struct dm_block *b, unsigned long *flags)
> +static void __wait_unlocked(struct dm_block *b, unsigned long *flags)
> __retains(&b->bm->lock)
> {
> __wait_block(&b->io_q, &b->bm->lock, *flags, schedule,
> ((b->state == BS_CLEAN) || (b->state == BS_DIRTY)));
> }
>
> -static int __wait_read_lockable(struct dm_block *b, unsigned long *flags)
> +static void __wait_read_lockable(struct dm_block *b, unsigned long *flags)
> __retains(&b->bm->lock)
> {
> __wait_block(&b->io_q, &b->bm->lock, *flags, schedule,
> @@ -419,21 +410,21 @@ static int __wait_read_lockable(struct dm_block *b, unsigned long *flags)
> b->state == BS_READ_LOCKED)));
> }
>
> -static int __wait_all_writes(struct dm_block_manager *bm, unsigned long *flags)
> +static void __wait_all_writes(struct dm_block_manager *bm, unsigned long *flags)
> __retains(&bm->lock)
> {
> __wait_block(&bm->io_q, &bm->lock, *flags, io_schedule,
> !bm->writing_count);
> }
>
> -static int __wait_all_io(struct dm_block_manager *bm, unsigned long *flags)
> +static void __wait_all_io(struct dm_block_manager *bm, unsigned long *flags)
> __retains(&bm->lock)
> {
> __wait_block(&bm->io_q, &bm->lock, *flags, io_schedule,
> !bm->writing_count && !bm->reading_count);
> }
>
> -static int __wait_clean(struct dm_block_manager *bm, unsigned long *flags)
> +static void __wait_clean(struct dm_block_manager *bm, unsigned long *flags)
> __retains(&bm->lock)
> {
> __wait_block(&bm->io_q, &bm->lock, *flags, io_schedule,
> --
> 1.7.4.1
>
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]