mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 10:41:38 -04:00
[PATCH] eliminate use of ->f_flags in block methods
store needed information in f_mode Signed-off-by: Al Viro <[email protected]>
This commit is contained in:
parent
aeb5d72706
commit
86d434dede
9 changed files with 26 additions and 22 deletions
|
|
@ -1813,17 +1813,17 @@ static int floppy_open( struct inode *inode, struct file *filp )
|
|||
if (p->ref && p->type != type)
|
||||
return -EBUSY;
|
||||
|
||||
if (p->ref == -1 || (p->ref && filp->f_flags & O_EXCL))
|
||||
if (p->ref == -1 || (p->ref && filp->f_mode & FMODE_EXCL))
|
||||
return -EBUSY;
|
||||
|
||||
if (filp->f_flags & O_EXCL)
|
||||
if (filp->f_mode & FMODE_EXCL)
|
||||
p->ref = -1;
|
||||
else
|
||||
p->ref++;
|
||||
|
||||
p->type = type;
|
||||
|
||||
if (filp->f_flags & O_NDELAY)
|
||||
if (filp->f_mode & FMODE_NDELAY)
|
||||
return 0;
|
||||
|
||||
if (filp->f_mode & (FMODE_READ|FMODE_WRITE)) {
|
||||
|
|
|
|||
|
|
@ -3453,7 +3453,7 @@ static int fd_getgeo(struct block_device *bdev, struct hd_geometry *geo)
|
|||
static int fd_ioctl(struct inode *inode, struct file *filp, unsigned int cmd,
|
||||
unsigned long param)
|
||||
{
|
||||
#define FD_IOCTL_ALLOWED ((filp) && (filp)->private_data)
|
||||
#define FD_IOCTL_ALLOWED ((filp) && (filp)->f_mode & (FMODE_WRITE|FMODE_WRITE_IOCTL))
|
||||
#define OUT(c,x) case c: outparam = (const char *) (x); break
|
||||
#define IN(c,x,tag) case c: *(x) = inparam. tag ; return 0
|
||||
|
||||
|
|
@ -3690,7 +3690,6 @@ static int floppy_open(struct inode *inode, struct file *filp)
|
|||
int res = -EBUSY;
|
||||
char *tmp;
|
||||
|
||||
filp->private_data = (void *)0;
|
||||
mutex_lock(&open_lock);
|
||||
old_dev = UDRS->fd_device;
|
||||
if (opened_bdev[drive] && opened_bdev[drive] != inode->i_bdev)
|
||||
|
|
@ -3701,10 +3700,10 @@ static int floppy_open(struct inode *inode, struct file *filp)
|
|||
USETF(FD_VERIFY);
|
||||
}
|
||||
|
||||
if (UDRS->fd_ref == -1 || (UDRS->fd_ref && (filp->f_flags & O_EXCL)))
|
||||
if (UDRS->fd_ref == -1 || (UDRS->fd_ref && (filp->f_mode & FMODE_EXCL)))
|
||||
goto out2;
|
||||
|
||||
if (filp->f_flags & O_EXCL)
|
||||
if (filp->f_mode & FMODE_EXCL)
|
||||
UDRS->fd_ref = -1;
|
||||
else
|
||||
UDRS->fd_ref++;
|
||||
|
|
@ -3751,16 +3750,10 @@ static int floppy_open(struct inode *inode, struct file *filp)
|
|||
buffer_track = -1;
|
||||
}
|
||||
|
||||
/* Allow ioctls if we have write-permissions even if read-only open.
|
||||
* Needed so that programs such as fdrawcmd still can work on write
|
||||
* protected disks */
|
||||
if ((filp->f_mode & FMODE_WRITE) || !file_permission(filp, MAY_WRITE))
|
||||
filp->private_data = (void *)8;
|
||||
|
||||
if (UFDCS->rawcmd == 1)
|
||||
UFDCS->rawcmd = 2;
|
||||
|
||||
if (!(filp->f_flags & O_NDELAY)) {
|
||||
if (!(filp->f_mode & FMODE_NDELAY)) {
|
||||
if (filp->f_mode & (FMODE_READ|FMODE_WRITE)) {
|
||||
UDRS->last_checked = 0;
|
||||
check_disk_change(inode->i_bdev);
|
||||
|
|
|
|||
|
|
@ -904,10 +904,10 @@ static int floppy_open(struct inode *inode, struct file *filp)
|
|||
swim3_action(fs, SETMFM);
|
||||
swim3_select(fs, RELAX);
|
||||
|
||||
} else if (fs->ref_count == -1 || filp->f_flags & O_EXCL)
|
||||
} else if (fs->ref_count == -1 || filp->f_mode & FMODE_EXCL)
|
||||
return -EBUSY;
|
||||
|
||||
if (err == 0 && (filp->f_flags & O_NDELAY) == 0
|
||||
if (err == 0 && (filp->f_mode & FMODE_NDELAY) == 0
|
||||
&& (filp->f_mode & (FMODE_READ|FMODE_WRITE))) {
|
||||
check_disk_change(inode->i_bdev);
|
||||
if (fs->ejected)
|
||||
|
|
@ -930,7 +930,7 @@ static int floppy_open(struct inode *inode, struct file *filp)
|
|||
return err;
|
||||
}
|
||||
|
||||
if (filp->f_flags & O_EXCL)
|
||||
if (filp->f_mode & FMODE_EXCL)
|
||||
fs->ref_count = -1;
|
||||
else
|
||||
++fs->ref_count;
|
||||
|
|
|
|||
|
|
@ -1691,7 +1691,7 @@ static int ub_bd_open(struct inode *inode, struct file *filp)
|
|||
* under some pretty murky conditions (a failure of READ CAPACITY).
|
||||
* We may need it one day.
|
||||
*/
|
||||
if (lun->removable && lun->changed && !(filp->f_flags & O_NDELAY)) {
|
||||
if (lun->removable && lun->changed && !(filp->f_mode & FMODE_NDELAY)) {
|
||||
rc = -ENOMEDIUM;
|
||||
goto err_open;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue