All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Riffard <laurent.riffard@free.fr>
To: dm-devel@redhat.com
Subject: Re: lvresize fails with "reload ioctl failed: Invalid argument"
Date: Tue, 12 Sep 2006 22:57:10 +0200	[thread overview]
Message-ID: <45071F26.1090108@free.fr> (raw)
In-Reply-To: <4505FD02.10309@ce.jp.nec.com>

Le 12.09.2006 02:19, Jun'ichi Nomura a écrit :
> Hi Laurent,
> 
> Laurent Riffard wrote:
>>>>>>>  device-mapper: reload ioctl failed: Invalid argument
> ...
>>> works for me with 2.6.17-4mdv kernel
>>> maybe something related to your kernel version?
>>
>> Yes, you seem to be right: it does work with 2.6.17-2mdv or 
>> 2.6.17-4mdv, but it fails with 2.6.18-rc6-mm1.
> 
> I reproduced the problem on my host, too.
> I found a change in -mm which would cause this problem
> and attached patch fixed it.
> 
> I'll post it to linux-kernel as well.
> 
> Thanks,

Hi Jun'ichi,

I can confirm that your patch solved this problem. 

- 2.6.18-rc6 works
- 2.6.18-rc6-mm1 fails
- 2.6.18-rc6-mm2 fails
- 2.6.18-rc6-mm2 + correct-add_bd_holder-return-value.patch works

Thanks!
--
laurent

> ------------------------------------------------------------------------
> 
> If a matching bd_holder is found in bd_holder_list,
> add_bd_holder() completes its job by just incrementing the reference count.
> In this case, it should be considered as success but it used to return 'fail'
> to let the caller free bd_holder.
> Fixed it to return success and free given object by itself.
> 
> Also, if either one of symlinking fails, the bd_holder should not
> be added to the list so that it can be discarded later.
> Otherwise, the caller will free bd_holder which is in the list.
> 
> This patch is neccessary only for -mm (later than 2.6.18-rc1-mm1).
> 
>  fs/block_dev.c |   11 +++++++----
>  1 file changed, 7 insertions(+), 4 deletions(-)
> 
> Signed-off-by: Jun'ichi Nomura <j-nomura@ce.jp.nec.com>
> 
> diff -urp linux-2.6.18-rc5-mm1.orig/fs/block_dev.c linux-2.6.18-rc5-mm1/fs/block_dev.c
> --- linux-2.6.18-rc5-mm1.orig/fs/block_dev.c	2006-09-11 19:33:35.000000000 -0400
> +++ linux-2.6.18-rc5-mm1/fs/block_dev.c	2006-09-11 19:21:46.000000000 -0400
> @@ -655,8 +655,8 @@ static void free_bd_holder(struct bd_hol
>   * If there is no matching entry with @bo in @bdev->bd_holder_list,
>   * add @bo to the list, create symlinks.
>   *
> - * Returns 0 if @bo was added to the list.
> - * Returns -ve if @bo wasn't used by any reason and should be freed.
> + * Returns 0 if symlinks are created or already there.
> + * Returns -ve if something fails and @bo can be freed.
>   */
>  static int add_bd_holder(struct block_device *bdev, struct bd_holder *bo)
>  {
> @@ -669,7 +669,9 @@ static int add_bd_holder(struct block_de
>  	list_for_each_entry(tmp, &bdev->bd_holder_list, list) {
>  		if (tmp->sdir == bo->sdir) {
>  			tmp->count++;
> -			return -EEXIST;
> +			/* We've already done what we need to do here. */
> +			free_bd_holder(bo);
> +			return 0;
>  		}
>  	}
>  
> @@ -682,7 +684,8 @@ static int add_bd_holder(struct block_de
>  		if (ret)
>  			del_symlink(bo->sdir, bo->sdev);
>  	}
> -	list_add_tail(&bo->list, &bdev->bd_holder_list);
> +	if (ret == 0)
> +		list_add_tail(&bo->list, &bdev->bd_holder_list);
>  	return ret;
>  }
> 

  reply	other threads:[~2006-09-12 20:57 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-09-10 21:38 lvresize fails with "reload ioctl failed: Invalid argument" Laurent Riffard
2006-09-10 22:14 ` Alasdair G Kergon
2006-09-11 14:19   ` Luca Berra
2006-09-11 16:45     ` Laurent Riffard
2006-09-11 17:05       ` Luca Berra
2006-09-11 18:23         ` Laurent Riffard
2006-09-11 20:14         ` Laurent Riffard
2006-09-12  0:19           ` Jun'ichi Nomura
2006-09-12 20:57             ` Laurent Riffard [this message]
2006-09-11 17:18   ` Laurent Riffard

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=45071F26.1090108@free.fr \
    --to=laurent.riffard@free.fr \
    --cc=dm-devel@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.