floppy: replace NO_GEOM macro with a function
This patch replaces the NO_GEOM macro with a proper static inline function and converts an open-coded caller in check_floppy_change() to use it. Cc: Stephen Hemminger <shemminger@vyatta.com> Cc: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Pekka Enberg <penberg@kernel.org> Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
This commit is contained in:
parent
f6f94e2ab1
commit
2b51dca79a
|
@ -596,6 +596,11 @@ static unsigned char fsector_t; /* sector in track */
|
||||||
static unsigned char in_sector_offset; /* offset within physical sector,
|
static unsigned char in_sector_offset; /* offset within physical sector,
|
||||||
* expressed in units of 512 bytes */
|
* expressed in units of 512 bytes */
|
||||||
|
|
||||||
|
static inline bool drive_no_geom(int drive)
|
||||||
|
{
|
||||||
|
return !current_type[drive] && !ITYPE(UDRS->fd_device);
|
||||||
|
}
|
||||||
|
|
||||||
#ifndef fd_eject
|
#ifndef fd_eject
|
||||||
static inline int fd_eject(int drive)
|
static inline int fd_eject(int drive)
|
||||||
{
|
{
|
||||||
|
@ -3757,7 +3762,7 @@ static int check_floppy_change(struct gendisk *disk)
|
||||||
if (test_bit(FD_DISK_CHANGED_BIT, &UDRS->flags) ||
|
if (test_bit(FD_DISK_CHANGED_BIT, &UDRS->flags) ||
|
||||||
test_bit(FD_VERIFY_BIT, &UDRS->flags) ||
|
test_bit(FD_VERIFY_BIT, &UDRS->flags) ||
|
||||||
test_bit(drive, &fake_change) ||
|
test_bit(drive, &fake_change) ||
|
||||||
(!ITYPE(UDRS->fd_device) && !current_type[drive]))
|
drive_no_geom(drive))
|
||||||
return 1;
|
return 1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -3823,13 +3828,13 @@ static int __floppy_read_block_0(struct block_device *bdev)
|
||||||
static int floppy_revalidate(struct gendisk *disk)
|
static int floppy_revalidate(struct gendisk *disk)
|
||||||
{
|
{
|
||||||
int drive = (long)disk->private_data;
|
int drive = (long)disk->private_data;
|
||||||
#define NO_GEOM (!current_type[drive] && !ITYPE(UDRS->fd_device))
|
|
||||||
int cf;
|
int cf;
|
||||||
int res = 0;
|
int res = 0;
|
||||||
|
|
||||||
if (test_bit(FD_DISK_CHANGED_BIT, &UDRS->flags) ||
|
if (test_bit(FD_DISK_CHANGED_BIT, &UDRS->flags) ||
|
||||||
test_bit(FD_VERIFY_BIT, &UDRS->flags) ||
|
test_bit(FD_VERIFY_BIT, &UDRS->flags) ||
|
||||||
test_bit(drive, &fake_change) || NO_GEOM) {
|
test_bit(drive, &fake_change) ||
|
||||||
|
drive_no_geom(drive)) {
|
||||||
if (WARN(atomic_read(&usage_count) == 0,
|
if (WARN(atomic_read(&usage_count) == 0,
|
||||||
"VFS: revalidate called on non-open device.\n"))
|
"VFS: revalidate called on non-open device.\n"))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
|
@ -3837,7 +3842,7 @@ static int floppy_revalidate(struct gendisk *disk)
|
||||||
lock_fdc(drive, false);
|
lock_fdc(drive, false);
|
||||||
cf = (test_bit(FD_DISK_CHANGED_BIT, &UDRS->flags) ||
|
cf = (test_bit(FD_DISK_CHANGED_BIT, &UDRS->flags) ||
|
||||||
test_bit(FD_VERIFY_BIT, &UDRS->flags));
|
test_bit(FD_VERIFY_BIT, &UDRS->flags));
|
||||||
if (!(cf || test_bit(drive, &fake_change) || NO_GEOM)) {
|
if (!(cf || test_bit(drive, &fake_change) || drive_no_geom(drive))) {
|
||||||
process_fd_request(); /*already done by another thread */
|
process_fd_request(); /*already done by another thread */
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -3849,7 +3854,7 @@ static int floppy_revalidate(struct gendisk *disk)
|
||||||
clear_bit(FD_DISK_CHANGED_BIT, &UDRS->flags);
|
clear_bit(FD_DISK_CHANGED_BIT, &UDRS->flags);
|
||||||
if (cf)
|
if (cf)
|
||||||
UDRS->generation++;
|
UDRS->generation++;
|
||||||
if (NO_GEOM) {
|
if (drive_no_geom(drive)) {
|
||||||
/* auto-sensing */
|
/* auto-sensing */
|
||||||
res = __floppy_read_block_0(opened_bdev[drive]);
|
res = __floppy_read_block_0(opened_bdev[drive]);
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue