You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge branch 'bkl-removal' of git://git.lwn.net/linux-2.6
* 'bkl-removal' of git://git.lwn.net/linux-2.6: Rationalize fasync return values Move FASYNC bit handling to f_op->fasync() Use f_lock to protect f_flags Rename struct file->f_ep_lock
This commit is contained in:
@@ -888,12 +888,7 @@ found:
|
||||
|
||||
static int sonypi_misc_fasync(int fd, struct file *filp, int on)
|
||||
{
|
||||
int retval;
|
||||
|
||||
retval = fasync_helper(fd, filp, on, &sonypi_device.fifo_async);
|
||||
if (retval < 0)
|
||||
return retval;
|
||||
return 0;
|
||||
return fasync_helper(fd, filp, on, &sonypi_device.fifo_async);
|
||||
}
|
||||
|
||||
static int sonypi_misc_release(struct inode *inode, struct file *file)
|
||||
|
||||
@@ -2162,13 +2162,12 @@ static int fionbio(struct file *file, int __user *p)
|
||||
if (get_user(nonblock, p))
|
||||
return -EFAULT;
|
||||
|
||||
/* file->f_flags is still BKL protected in the fs layer - vomit */
|
||||
lock_kernel();
|
||||
spin_lock(&file->f_lock);
|
||||
if (nonblock)
|
||||
file->f_flags |= O_NONBLOCK;
|
||||
else
|
||||
file->f_flags &= ~O_NONBLOCK;
|
||||
unlock_kernel();
|
||||
spin_unlock(&file->f_lock);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -337,14 +337,10 @@ int drm_fasync(int fd, struct file *filp, int on)
|
||||
{
|
||||
struct drm_file *priv = filp->private_data;
|
||||
struct drm_device *dev = priv->minor->dev;
|
||||
int retcode;
|
||||
|
||||
DRM_DEBUG("fd = %d, device = 0x%lx\n", fd,
|
||||
(long)old_encode_dev(priv->minor->device));
|
||||
retcode = fasync_helper(fd, filp, on, &dev->buf_async);
|
||||
if (retcode < 0)
|
||||
return retcode;
|
||||
return 0;
|
||||
return fasync_helper(fd, filp, on, &dev->buf_async);
|
||||
}
|
||||
EXPORT_SYMBOL(drm_fasync);
|
||||
|
||||
|
||||
@@ -227,12 +227,9 @@ void hiddev_report_event(struct hid_device *hid, struct hid_report *report)
|
||||
*/
|
||||
static int hiddev_fasync(int fd, struct file *file, int on)
|
||||
{
|
||||
int retval;
|
||||
struct hiddev_list *list = file->private_data;
|
||||
|
||||
retval = fasync_helper(fd, file, on, &list->fasync);
|
||||
|
||||
return retval < 0 ? retval : 0;
|
||||
return fasync_helper(fd, file, on, &list->fasync);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1325,11 +1325,7 @@ static int dv1394_fasync(int fd, struct file *file, int on)
|
||||
|
||||
struct video_card *video = file_to_video_card(file);
|
||||
|
||||
int retval = fasync_helper(fd, file, on, &video->fasync);
|
||||
|
||||
if (retval < 0)
|
||||
return retval;
|
||||
return 0;
|
||||
return fasync_helper(fd, file, on, &video->fasync);
|
||||
}
|
||||
|
||||
static ssize_t dv1394_write(struct file *file, const char __user *buffer, size_t count, loff_t *ppos)
|
||||
|
||||
@@ -94,11 +94,8 @@ static void evdev_event(struct input_handle *handle,
|
||||
static int evdev_fasync(int fd, struct file *file, int on)
|
||||
{
|
||||
struct evdev_client *client = file->private_data;
|
||||
int retval;
|
||||
|
||||
retval = fasync_helper(fd, file, on, &client->fasync);
|
||||
|
||||
return retval < 0 ? retval : 0;
|
||||
return fasync_helper(fd, file, on, &client->fasync);
|
||||
}
|
||||
|
||||
static int evdev_flush(struct file *file, fl_owner_t id)
|
||||
|
||||
@@ -159,12 +159,9 @@ static void joydev_event(struct input_handle *handle,
|
||||
|
||||
static int joydev_fasync(int fd, struct file *file, int on)
|
||||
{
|
||||
int retval;
|
||||
struct joydev_client *client = file->private_data;
|
||||
|
||||
retval = fasync_helper(fd, file, on, &client->fasync);
|
||||
|
||||
return retval < 0 ? retval : 0;
|
||||
return fasync_helper(fd, file, on, &client->fasync);
|
||||
}
|
||||
|
||||
static void joydev_free(struct device *dev)
|
||||
|
||||
@@ -403,12 +403,9 @@ static void mousedev_event(struct input_handle *handle,
|
||||
|
||||
static int mousedev_fasync(int fd, struct file *file, int on)
|
||||
{
|
||||
int retval;
|
||||
struct mousedev_client *client = file->private_data;
|
||||
|
||||
retval = fasync_helper(fd, file, on, &client->fasync);
|
||||
|
||||
return retval < 0 ? retval : 0;
|
||||
return fasync_helper(fd, file, on, &client->fasync);
|
||||
}
|
||||
|
||||
static void mousedev_free(struct device *dev)
|
||||
|
||||
@@ -58,10 +58,8 @@ static unsigned int serio_raw_no;
|
||||
static int serio_raw_fasync(int fd, struct file *file, int on)
|
||||
{
|
||||
struct serio_raw_list *list = file->private_data;
|
||||
int retval;
|
||||
|
||||
retval = fasync_helper(fd, file, on, &list->fasync);
|
||||
return retval < 0 ? retval : 0;
|
||||
return fasync_helper(fd, file, on, &list->fasync);
|
||||
}
|
||||
|
||||
static struct serio_raw *serio_raw_locate(int minor)
|
||||
|
||||
@@ -998,8 +998,8 @@ static struct fasync_struct *fasync[256] = { NULL, };
|
||||
static int cosa_fasync(struct inode *inode, struct file *file, int on)
|
||||
{
|
||||
int port = iminor(inode);
|
||||
int rv = fasync_helper(inode, file, on, &fasync[port]);
|
||||
return rv < 0 ? rv : 0;
|
||||
|
||||
return fasync_helper(inode, file, on, &fasync[port]);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1917,12 +1917,7 @@ static struct sonypi_compat_s sonypi_compat = {
|
||||
|
||||
static int sonypi_misc_fasync(int fd, struct file *filp, int on)
|
||||
{
|
||||
int retval;
|
||||
|
||||
retval = fasync_helper(fd, filp, on, &sonypi_compat.fifo_async);
|
||||
if (retval < 0)
|
||||
return retval;
|
||||
return 0;
|
||||
return fasync_helper(fd, filp, on, &sonypi_compat.fifo_async);
|
||||
}
|
||||
|
||||
static int sonypi_misc_release(struct inode *inode, struct file *file)
|
||||
|
||||
+1
-3
@@ -1154,7 +1154,6 @@ sg_poll(struct file *filp, poll_table * wait)
|
||||
static int
|
||||
sg_fasync(int fd, struct file *filp, int mode)
|
||||
{
|
||||
int retval;
|
||||
Sg_device *sdp;
|
||||
Sg_fd *sfp;
|
||||
|
||||
@@ -1163,8 +1162,7 @@ sg_fasync(int fd, struct file *filp, int mode)
|
||||
SCSI_LOG_TIMEOUT(3, printk("sg_fasync: %s, mode=%d\n",
|
||||
sdp->disk->disk_name, mode));
|
||||
|
||||
retval = fasync_helper(fd, filp, mode, &sfp->async_qp);
|
||||
return (retval < 0) ? retval : 0;
|
||||
return fasync_helper(fd, filp, mode, &sfp->async_qp);
|
||||
}
|
||||
|
||||
static int
|
||||
|
||||
@@ -1711,7 +1711,9 @@ static int do_write(struct fsg_dev *fsg)
|
||||
curlun->sense_data = SS_WRITE_PROTECTED;
|
||||
return -EINVAL;
|
||||
}
|
||||
spin_lock(&curlun->filp->f_lock);
|
||||
curlun->filp->f_flags &= ~O_SYNC; // Default is not to wait
|
||||
spin_unlock(&curlun->filp->f_lock);
|
||||
|
||||
/* Get the starting Logical Block Address and check that it's
|
||||
* not too big */
|
||||
@@ -1728,8 +1730,11 @@ static int do_write(struct fsg_dev *fsg)
|
||||
curlun->sense_data = SS_INVALID_FIELD_IN_CDB;
|
||||
return -EINVAL;
|
||||
}
|
||||
if (fsg->cmnd[1] & 0x08) // FUA
|
||||
if (fsg->cmnd[1] & 0x08) { // FUA
|
||||
spin_lock(&curlun->filp->f_lock);
|
||||
curlun->filp->f_flags |= O_SYNC;
|
||||
spin_unlock(&curlun->filp->f_lock);
|
||||
}
|
||||
}
|
||||
if (lba >= curlun->num_sectors) {
|
||||
curlun->sense_data = SS_LOGICAL_BLOCK_ADDRESS_OUT_OF_RANGE;
|
||||
|
||||
Reference in New Issue
Block a user