All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: Sam Ravnborg <sam@ravnborg.org>
Cc: Jens Axboe <axboe@kernel.dk>,
	Christoph Hellwig <hch@infradead.org>,
	linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	John Kacur <jkacur@redhat.com>,
	Frederic Weisbecker <fweisbec@gmail.com>,
	linux-scsi@vger.kernel.org
Subject: Re: [PATCH 2/6] block: push down BKL into .open and .release
Date: Sun, 4 Jul 2010 23:09:09 +0200	[thread overview]
Message-ID: <201007042309.09727.arnd@arndb.de> (raw)
In-Reply-To: <20100704080146.GA31828@merkur.ravnborg.org>

On Sunday 04 July 2010 10:01:46 Sam Ravnborg wrote:
> > --- a/drivers/block/amiflop.c
> > +++ b/drivers/block/amiflop.c
> > @@ -1555,10 +1555,13 @@ static int floppy_open(struct block_device *bdev, fmode_t mode)
> >  	int old_dev;
> >  	unsigned long flags;
> >  
> > +	lock_kernel();
> >  	old_dev = fd_device[drive];
> >  
> > -	if (fd_ref[drive] && old_dev != system)
> > +	if (fd_ref[drive] && old_dev != system) {
> > +		unlock_kernel();
> >  		return -EBUSY;
> > +	}
> >  
> >  	if (mode & (FMODE_READ|FMODE_WRITE)) {
> >  		check_disk_change(bdev);
> > @@ -1571,8 +1574,10 @@ static int floppy_open(struct block_device *bdev, fmode_t mode)
> >  			fd_deselect (drive);
> >  			rel_fdc();
> >  
> > -			if (wrprot)
> > +			if (wrprot) {
> > +				unlock_kernel();
> >  				return -EROFS;
> > +			}
> >  		}
> >  	}
> >  
> > @@ -1589,6 +1594,7 @@ static int floppy_open(struct block_device *bdev, fmode_t mode)
> >  	printk(KERN_INFO "fd%d: accessing %s-disk with %s-layout\n",drive,
> >  	       unit[drive].type->name, data_types[system].name);
> >  
> > +	unlock_kernel();
> >  	return 0;
> >  }
> 
> Using goto for errorhandling here would have been nicer.

I tried to minimize the chance for breaking stuff in code I cannot easily
test build. As shown by the bug you found in my pktcdvd patch, changing the
control flow of a function has a higher potential of introducing bugs,
so I didn't do it for drivers that people don't care much about any more.

> Also did you forget to include smp_locks.h?

No, that was already there from the first patch.

> Lot's of other places could benefit from improved goto error handling.
> The driver maintainers should do this (if there is a maintainer).

If that makes Jens accept my patches, I'd gladly change them this way.
I agree that it's cleaner and I always write my own code like that,
but when modifying (mostly) unmaintained code, my preference is on
trying to ensure the patch is correct.


> I did not find anything else going through this patch.

Ok, thanks a lot for looking through this!

	Arnd

  parent reply	other threads:[~2010-07-04 21:09 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-03 21:47 [PATCH 0/6] block: BKL removal, version 3 Arnd Bergmann
2010-07-03 21:47 ` [PATCH 1/6] block: push down BKL into .locked_ioctl Arnd Bergmann
2010-07-04  7:30   ` Sam Ravnborg
2010-07-04 20:59     ` Arnd Bergmann
2010-07-07  1:52   ` Christoph Hellwig
2010-07-07 13:28     ` Arnd Bergmann
2010-07-03 21:47 ` [PATCH 2/6] block: push down BKL into .open and .release Arnd Bergmann
2010-07-04  8:01   ` Sam Ravnborg
2010-07-04 17:33     ` Arjan van de Ven
2010-07-04 20:27       ` Geert Uytterhoeven
2010-07-04 21:09     ` Arnd Bergmann [this message]
2010-07-07  1:50   ` Christoph Hellwig
2010-07-07 14:04     ` Arnd Bergmann
2010-07-03 21:47 ` [PATCH 3/6] block: push BKL into blktrace ioctls Arnd Bergmann
2010-07-07  1:50   ` Christoph Hellwig
2010-07-07 13:46     ` Arnd Bergmann
2010-07-03 21:47 ` [PATCH 4/6] block: remove BKL from BLKROSET and BLKFLSBUF Arnd Bergmann
2010-07-07  1:52   ` Christoph Hellwig
2010-07-03 21:47 ` [PATCH 5/6] block: remove BKL from partition code Arnd Bergmann
2010-07-07  2:04   ` Christoph Hellwig
2010-07-03 21:47 ` [PATCH 6/6] scsi/sd: remove big kernel lock Arnd Bergmann
2010-07-07  2:06   ` Christoph Hellwig
2010-07-07 13:54     ` Arnd Bergmann

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=201007042309.09727.arnd@arndb.de \
    --to=arnd@arndb.de \
    --cc=axboe@kernel.dk \
    --cc=fweisbec@gmail.com \
    --cc=hch@infradead.org \
    --cc=jkacur@redhat.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=sam@ravnborg.org \
    /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.