提交 2b51dca7 编写于 作者: P Pekka Enberg 提交者: Jens Axboe

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: NPekka Enberg <penberg@kernel.org>
Signed-off-by: NJens Axboe <jaxboe@fusionio.com>
上级 f6f94e2a
...@@ -596,6 +596,11 @@ static unsigned char fsector_t; /* sector in track */ ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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 {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册