Re: [PATCH] md/bitmap:If bmap() failed,free buffers must check bitmap->pending_writes == 0.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 18 May 2012 19:38:34 +0800 "majianpeng" <majianpeng@xxxxxxxxx> wrote:

> Signed-off-by: majianpeng <majianpeng@xxxxxxxxx>
> ---
>  drivers/md/bitmap.c |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
> index 17e2b47..74540d7 100644
> --- a/drivers/md/bitmap.c
> +++ b/drivers/md/bitmap.c
> @@ -376,6 +376,8 @@ static struct page *read_page(struct file *file, unsigned long index,
>  			bh->b_blocknr = bmap(inode, block);
>  			if (bh->b_blocknr == 0) {
>  				/* Cannot use this file! */
> +				wait_event(bitmap->write_wait,
> +					atomic_read(&bitmap->pending_writes) == 0);
>  				free_buffers(page);
>  				page = ERR_PTR(-EINVAL);
>  				goto out;

Hi,
 thanks for the patch.

However it doesn't apply against the current code in linux-next.
Some changes have been made which might make this fix unnecessary as the page
is not freed until later.
Could you check the latest code and see if the problem still exists?

Thanks,
NeilBrown

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux