cciss/cpqarray/md should use generic BLKGETSIZE
Subsystems (2)
PATCH 1/1 cciss/cpqarray/md should use generic BLKGETSIZE
I did that already in 2.4.9/2.4.10 timeframe but it looks like a few offenders started duplicating code again..
drivers/block/cciss.c +2 -6
@@ -505,16 +505,12 @@return -EFAULT ;return 0 ; } -case BLKGETSIZE : -put_user (hba[ctlr]->hd[MINOR (inode->i_rdev)].nr_sects, (unsigned long *)arg); -return 0 ; -case BLKGETSIZE64 : -put_user ((u64 )hba[ctlr]->hd[MINOR (inode->i_rdev)].nr_sects <<9 , (u64 *)arg); -return 0 ;case BLKRRPART :if (!capable (CAP_SYS_ADMIN ))return -EPERM ;return revalidate_logvol (inode->i_rdev,1 ); +case BLKGETSIZE : +case BLKGETSIZE64 :case BLKFLSBUF :case BLKBSZSET :case BLKBSZGET :
===== drivers/block/cpqarray.c 1.27 vs edited =====
drivers/block/cpqarray.c +2 -7
@@ -1279,13 +1279,6 @@ida_ioctl_t *io = (ida_ioctl_t *)arg;return copy_to_user (&io->c.drv,&hba[ctlr]->drv[dsk],sizeof (drv_info_t)); } -case BLKGETSIZE : -if (!arg) -return -EINVAL ; -return put_user (hba[ctlr]->hd[MINOR (inode->i_rdev)].nr_sects, - (unsigned long *)arg); -case BLKGETSIZE64 : -return put_user ((u64)(hba[ctlr]->hd[MINOR (inode->i_rdev)].nr_sects) <<9 , (u64 *)arg);case BLKRRPART :return revalidate_logvol (inode->i_rdev,1 );case IDAPASSTHRU :
@@ -1379,6 +1372,8 @@return (0 ); } +case BLKGETSIZE : +case BLKGETSIZE64 :case BLKFLSBUF :case BLKBSZSET :case BLKBSZGET :
===== drivers/md/md.c 1.37 vs edited =====
drivers/md/md.c +2 -15
@@ -2617,21 +2617,8 @@ goto done;#endif -case BLKGETSIZE :/* Return device size */ -if (!arg) { - err = -EINVAL ; -MD_BUG (); - goto abort; - } - err =md_put_user (md_hd_struct[minor].nr_sects, - (unsigned long *) arg); - goto done; - -case BLKGETSIZE64 :/* Return device size */ - err =md_put_user ((u64 )md_hd_struct[minor].nr_sects <<9 , - (u64 *) arg); - goto done; - +case BLKGETSIZE : +case BLKGETSIZE64 :case BLKRAGET :case BLKRASET :case BLKFLSBUF :