Re: Linux 2.6.27.26

From: Arkadiusz Miskiewicz
Date: Fri Jul 03 2009 - 02:59:21 EST


On Friday 03 of July 2009, Greg KH wrote:

Isn't this part broken?

The code in 2.6.27 already has such thing and new code is trying to return
NULL even if function returns int

static int dm_blk_open(struct inode *inode, struct file *file)
{
struct mapped_device *md;

spin_lock(&_minor_lock);

md = inode->i_bdev->bd_disk->private_data;
if (!md)
goto out;

if (test_bit(DMF_FREEING, &md->flags) ||
test_bit(DMF_DELETING, &md->flags)) {
md = NULL;
goto out;
}

dm_get(md);
atomic_inc(&md->open_count);

out:
spin_unlock(&_minor_lock);

return md ? 0 : -ENXIO;
}


> diff --git a/drivers/md/dm.c b/drivers/md/dm.c
> index ace998c..925efaf 100644
> --- a/drivers/md/dm.c
> +++ b/drivers/md/dm.c
> @@ -265,6 +265,10 @@ static int dm_blk_open(struct inode *inode, struct
> file *file) goto out;
> }
>
> + if (test_bit(DMF_FREEING, &md->flags) ||
> + test_bit(DMF_DELETING, &md->flags))
> + return NULL;
> +
> dm_get(md);
> atomic_inc(&md->open_count);
>


--
Arkadiusz MiÅkiewicz PLD/Linux Team
arekm / maven.pl http://ftp.pld-linux.org/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/