diff options
57 files changed, 110 insertions, 95 deletions
diff --git a/arch/arm/mach-ns9xxx/clock.c b/arch/arm/mach-ns9xxx/clock.c index 44ed20d4a38..cf81cbc5754 100644 --- a/arch/arm/mach-ns9xxx/clock.c +++ b/arch/arm/mach-ns9xxx/clock.c @@ -195,7 +195,7 @@ static int clk_debugfs_open(struct inode *inode, struct file *file)  	return single_open(file, clk_debugfs_show, NULL);  } -static struct file_operations clk_debugfs_operations = { +static const struct file_operations clk_debugfs_operations = {  	.open = clk_debugfs_open,  	.read = seq_read,  	.llseek = seq_lseek, diff --git a/arch/blackfin/mach-bf561/coreb.c b/arch/blackfin/mach-bf561/coreb.c index 93635a766f9..1e60a92dd60 100644 --- a/arch/blackfin/mach-bf561/coreb.c +++ b/arch/blackfin/mach-bf561/coreb.c @@ -48,7 +48,7 @@ coreb_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned l  	return ret;  } -static struct file_operations coreb_fops = { +static const struct file_operations coreb_fops = {  	.owner   = THIS_MODULE,  	.ioctl   = coreb_ioctl,  }; diff --git a/arch/cris/arch-v10/drivers/sync_serial.c b/arch/cris/arch-v10/drivers/sync_serial.c index 6cc1a0319a5..562b9a7feae 100644 --- a/arch/cris/arch-v10/drivers/sync_serial.c +++ b/arch/cris/arch-v10/drivers/sync_serial.c @@ -244,7 +244,7 @@ static unsigned sync_serial_prescale_shadow;  #define NUMBER_OF_PORTS 2 -static struct file_operations sync_serial_fops = { +static const struct file_operations sync_serial_fops = {  	.owner   = THIS_MODULE,  	.write   = sync_serial_write,  	.read    = sync_serial_read, diff --git a/arch/cris/arch-v32/drivers/mach-fs/gpio.c b/arch/cris/arch-v32/drivers/mach-fs/gpio.c index fe1fde89388..d89ab80498e 100644 --- a/arch/cris/arch-v32/drivers/mach-fs/gpio.c +++ b/arch/cris/arch-v32/drivers/mach-fs/gpio.c @@ -855,7 +855,7 @@ gpio_leds_ioctl(unsigned int cmd, unsigned long arg)  	return 0;  } -struct file_operations gpio_fops = { +static const struct file_operations gpio_fops = {  	.owner       = THIS_MODULE,  	.poll        = gpio_poll,  	.ioctl       = gpio_ioctl, diff --git a/arch/powerpc/kvm/timing.c b/arch/powerpc/kvm/timing.c index 47ee603f558..2aa371e3007 100644 --- a/arch/powerpc/kvm/timing.c +++ b/arch/powerpc/kvm/timing.c @@ -201,7 +201,7 @@ static int kvmppc_exit_timing_open(struct inode *inode, struct file *file)  	return single_open(file, kvmppc_exit_timing_show, inode->i_private);  } -static struct file_operations kvmppc_exit_timing_fops = { +static const struct file_operations kvmppc_exit_timing_fops = {  	.owner   = THIS_MODULE,  	.open    = kvmppc_exit_timing_open,  	.read    = seq_read, diff --git a/arch/powerpc/platforms/cell/spufs/file.c b/arch/powerpc/platforms/cell/spufs/file.c index 96130944617..884e8bcec49 100644 --- a/arch/powerpc/platforms/cell/spufs/file.c +++ b/arch/powerpc/platforms/cell/spufs/file.c @@ -147,7 +147,7 @@ static int __fops ## _open(struct inode *inode, struct file *file)	\  	__simple_attr_check_format(__fmt, 0ull);			\  	return spufs_attr_open(inode, file, __get, __set, __fmt);	\  }									\ -static struct file_operations __fops = {				\ +static const struct file_operations __fops = {				\  	.owner	 = THIS_MODULE,						\  	.open	 = __fops ## _open,					\  	.release = spufs_attr_release,					\ diff --git a/arch/powerpc/platforms/pseries/dtl.c b/arch/powerpc/platforms/pseries/dtl.c index ab69925d579..937a544a236 100644 --- a/arch/powerpc/platforms/pseries/dtl.c +++ b/arch/powerpc/platforms/pseries/dtl.c @@ -209,7 +209,7 @@ static ssize_t dtl_file_read(struct file *filp, char __user *buf, size_t len,  	return n_read * sizeof(struct dtl_entry);  } -static struct file_operations dtl_fops = { +static const struct file_operations dtl_fops = {  	.open		= dtl_file_open,  	.release	= dtl_file_release,  	.read		= dtl_file_read, diff --git a/arch/x86/xen/debugfs.c b/arch/x86/xen/debugfs.c index b53225d2cac..e133ce25e29 100644 --- a/arch/x86/xen/debugfs.c +++ b/arch/x86/xen/debugfs.c @@ -100,7 +100,7 @@ static int xen_array_release(struct inode *inode, struct file *file)  	return 0;  } -static struct file_operations u32_array_fops = { +static const struct file_operations u32_array_fops = {  	.owner	= THIS_MODULE,  	.open	= u32_array_open,  	.release= xen_array_release, diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c index a4fddb24476..f6e54bf8dd9 100644 --- a/drivers/acpi/video.c +++ b/drivers/acpi/video.c @@ -285,7 +285,7 @@ static int acpi_video_device_brightness_open_fs(struct inode *inode,  						struct file *file);  static ssize_t acpi_video_device_write_brightness(struct file *file,  	const char __user *buffer, size_t count, loff_t *data); -static struct file_operations acpi_video_device_brightness_fops = { +static const struct file_operations acpi_video_device_brightness_fops = {  	.owner = THIS_MODULE,  	.open = acpi_video_device_brightness_open_fs,  	.read = seq_read, diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c index 24c3e21ab26..1ece0b47b58 100644 --- a/drivers/block/cciss.c +++ b/drivers/block/cciss.c @@ -426,7 +426,7 @@ out:  	return err;  } -static struct file_operations cciss_proc_fops = { +static const struct file_operations cciss_proc_fops = {  	.owner	 = THIS_MODULE,  	.open    = cciss_seq_open,  	.read    = seq_read, diff --git a/drivers/char/apm-emulation.c b/drivers/char/apm-emulation.c index aaca40283be..4f568cb9af3 100644 --- a/drivers/char/apm-emulation.c +++ b/drivers/char/apm-emulation.c @@ -393,7 +393,7 @@ static int apm_open(struct inode * inode, struct file * filp)  	return as ? 0 : -ENOMEM;  } -static struct file_operations apm_bios_fops = { +static const struct file_operations apm_bios_fops = {  	.owner		= THIS_MODULE,  	.read		= apm_read,  	.poll		= apm_poll, diff --git a/drivers/char/bfin-otp.c b/drivers/char/bfin-otp.c index e3dd24bff51..836d4f0a876 100644 --- a/drivers/char/bfin-otp.c +++ b/drivers/char/bfin-otp.c @@ -217,7 +217,7 @@ static long bfin_otp_ioctl(struct file *filp, unsigned cmd, unsigned long arg)  # define bfin_otp_ioctl NULL  #endif -static struct file_operations bfin_otp_fops = { +static const struct file_operations bfin_otp_fops = {  	.owner          = THIS_MODULE,  	.unlocked_ioctl = bfin_otp_ioctl,  	.read           = bfin_otp_read, diff --git a/drivers/char/xilinx_hwicap/xilinx_hwicap.c b/drivers/char/xilinx_hwicap/xilinx_hwicap.c index f40ab699860..4846d50199f 100644 --- a/drivers/char/xilinx_hwicap/xilinx_hwicap.c +++ b/drivers/char/xilinx_hwicap/xilinx_hwicap.c @@ -559,7 +559,7 @@ static int hwicap_release(struct inode *inode, struct file *file)  	return status;  } -static struct file_operations hwicap_fops = { +static const struct file_operations hwicap_fops = {  	.owner = THIS_MODULE,  	.write = hwicap_write,  	.read = hwicap_read, diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index bb11a429394..662ed923d9e 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -1487,7 +1487,7 @@ static int gpiolib_open(struct inode *inode, struct file *file)  	return single_open(file, gpiolib_show, NULL);  } -static struct file_operations gpiolib_operations = { +static const struct file_operations gpiolib_operations = {  	.open		= gpiolib_open,  	.read		= seq_read,  	.llseek		= seq_lseek, diff --git a/drivers/hwmon/fschmd.c b/drivers/hwmon/fschmd.c index ea955edde87..2a7a85a6dc3 100644 --- a/drivers/hwmon/fschmd.c +++ b/drivers/hwmon/fschmd.c @@ -915,7 +915,7 @@ static int watchdog_ioctl(struct inode *inode, struct file *filp,  	return ret;  } -static struct file_operations watchdog_fops = { +static const struct file_operations watchdog_fops = {  	.owner = THIS_MODULE,  	.llseek = no_llseek,  	.open = watchdog_open, diff --git a/drivers/lguest/lguest_user.c b/drivers/lguest/lguest_user.c index b4d3f7ca554..bd1632388e4 100644 --- a/drivers/lguest/lguest_user.c +++ b/drivers/lguest/lguest_user.c @@ -508,7 +508,7 @@ static int close(struct inode *inode, struct file *file)   * uses: reading and writing a character device called /dev/lguest.  All the   * work happens in the read(), write() and close() routines:   */ -static struct file_operations lguest_fops = { +static const struct file_operations lguest_fops = {  	.owner	 = THIS_MODULE,  	.release = close,  	.write	 = write, diff --git a/drivers/media/dvb/dvb-core/dmxdev.c b/drivers/media/dvb/dvb-core/dmxdev.c index 3750ff48cba..51641498359 100644 --- a/drivers/media/dvb/dvb-core/dmxdev.c +++ b/drivers/media/dvb/dvb-core/dmxdev.c @@ -1203,7 +1203,7 @@ static unsigned int dvb_dvr_poll(struct file *file, poll_table *wait)  	return mask;  } -static struct file_operations dvb_dvr_fops = { +static const struct file_operations dvb_dvr_fops = {  	.owner = THIS_MODULE,  	.read = dvb_dvr_read,  	.write = dvb_dvr_write, diff --git a/drivers/media/dvb/firewire/firedtv-ci.c b/drivers/media/dvb/firewire/firedtv-ci.c index eeb80d0ea3f..853e04b7cb3 100644 --- a/drivers/media/dvb/firewire/firedtv-ci.c +++ b/drivers/media/dvb/firewire/firedtv-ci.c @@ -215,7 +215,7 @@ static unsigned int fdtv_ca_io_poll(struct file *file, poll_table *wait)  	return POLLIN;  } -static struct file_operations fdtv_ca_fops = { +static const struct file_operations fdtv_ca_fops = {  	.owner		= THIS_MODULE,  	.ioctl		= dvb_generic_ioctl,  	.open		= dvb_generic_open, diff --git a/drivers/misc/phantom.c b/drivers/misc/phantom.c index fa57b67593a..90a95ce8dc3 100644 --- a/drivers/misc/phantom.c +++ b/drivers/misc/phantom.c @@ -271,7 +271,7 @@ static unsigned int phantom_poll(struct file *file, poll_table *wait)  	return mask;  } -static struct file_operations phantom_file_ops = { +static const struct file_operations phantom_file_ops = {  	.open = phantom_open,  	.release = phantom_release,  	.unlocked_ioctl = phantom_ioctl, diff --git a/drivers/misc/sgi-gru/grufile.c b/drivers/misc/sgi-gru/grufile.c index 300e7ba391a..41c8fe2a928 100644 --- a/drivers/misc/sgi-gru/grufile.c +++ b/drivers/misc/sgi-gru/grufile.c @@ -53,7 +53,6 @@ struct gru_stats_s gru_stats;  /* Guaranteed user available resources on each node */  static int max_user_cbrs, max_user_dsr_bytes; -static struct file_operations gru_fops;  static struct miscdevice gru_miscdev; @@ -426,7 +425,7 @@ static void __exit gru_exit(void)  	gru_proc_exit();  } -static struct file_operations gru_fops = { +static const struct file_operations gru_fops = {  	.owner		= THIS_MODULE,  	.unlocked_ioctl	= gru_file_unlocked_ioctl,  	.mmap		= gru_file_mmap, diff --git a/drivers/mmc/core/debugfs.c b/drivers/mmc/core/debugfs.c index 610dbd1fcc8..96d10f40fb2 100644 --- a/drivers/mmc/core/debugfs.c +++ b/drivers/mmc/core/debugfs.c @@ -240,7 +240,7 @@ static int mmc_ext_csd_release(struct inode *inode, struct file *file)  	return 0;  } -static struct file_operations mmc_dbg_ext_csd_fops = { +static const struct file_operations mmc_dbg_ext_csd_fops = {  	.open		= mmc_ext_csd_open,  	.read		= mmc_ext_csd_read,  	.release	= mmc_ext_csd_release, diff --git a/drivers/s390/cio/qdio_debug.c b/drivers/s390/cio/qdio_debug.c index 1b78f639ead..76769978285 100644 --- a/drivers/s390/cio/qdio_debug.c +++ b/drivers/s390/cio/qdio_debug.c @@ -125,7 +125,7 @@ static int qstat_seq_open(struct inode *inode, struct file *filp)  			   filp->f_path.dentry->d_inode->i_private);  } -static struct file_operations debugfs_fops = { +static const struct file_operations debugfs_fops = {  	.owner	 = THIS_MODULE,  	.open	 = qstat_seq_open,  	.read	 = seq_read, diff --git a/drivers/s390/cio/qdio_perf.c b/drivers/s390/cio/qdio_perf.c index eff943923c6..968e3c7c263 100644 --- a/drivers/s390/cio/qdio_perf.c +++ b/drivers/s390/cio/qdio_perf.c @@ -84,7 +84,7 @@ static int qdio_perf_seq_open(struct inode *inode, struct file *filp)  	return single_open(filp, qdio_perf_proc_show, NULL);  } -static struct file_operations qdio_perf_proc_fops = { +static const struct file_operations qdio_perf_proc_fops = {  	.owner	 = THIS_MODULE,  	.open	 = qdio_perf_seq_open,  	.read	 = seq_read, diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c index 0cb049f5cc5..747a5e5c127 100644 --- a/drivers/scsi/sg.c +++ b/drivers/scsi/sg.c @@ -1317,7 +1317,7 @@ static void sg_rq_end_io(struct request *rq, int uptodate)  	}  } -static struct file_operations sg_fops = { +static const struct file_operations sg_fops = {  	.owner = THIS_MODULE,  	.read = sg_read,  	.write = sg_write, @@ -2194,9 +2194,11 @@ static int sg_proc_seq_show_int(struct seq_file *s, void *v);  static int sg_proc_single_open_adio(struct inode *inode, struct file *file);  static ssize_t sg_proc_write_adio(struct file *filp, const char __user *buffer,  			          size_t count, loff_t *off); -static struct file_operations adio_fops = { -	/* .owner, .read and .llseek added in sg_proc_init() */ +static const struct file_operations adio_fops = { +	.owner = THIS_MODULE,  	.open = sg_proc_single_open_adio, +	.read = seq_read, +	.llseek = seq_lseek,  	.write = sg_proc_write_adio,  	.release = single_release,  }; @@ -2204,23 +2206,32 @@ static struct file_operations adio_fops = {  static int sg_proc_single_open_dressz(struct inode *inode, struct file *file);  static ssize_t sg_proc_write_dressz(struct file *filp,   		const char __user *buffer, size_t count, loff_t *off); -static struct file_operations dressz_fops = { +static const struct file_operations dressz_fops = { +	.owner = THIS_MODULE,  	.open = sg_proc_single_open_dressz, +	.read = seq_read, +	.llseek = seq_lseek,  	.write = sg_proc_write_dressz,  	.release = single_release,  };  static int sg_proc_seq_show_version(struct seq_file *s, void *v);  static int sg_proc_single_open_version(struct inode *inode, struct file *file); -static struct file_operations version_fops = { +static const struct file_operations version_fops = { +	.owner = THIS_MODULE,  	.open = sg_proc_single_open_version, +	.read = seq_read, +	.llseek = seq_lseek,  	.release = single_release,  };  static int sg_proc_seq_show_devhdr(struct seq_file *s, void *v);  static int sg_proc_single_open_devhdr(struct inode *inode, struct file *file); -static struct file_operations devhdr_fops = { +static const struct file_operations devhdr_fops = { +	.owner = THIS_MODULE,  	.open = sg_proc_single_open_devhdr, +	.read = seq_read, +	.llseek = seq_lseek,  	.release = single_release,  }; @@ -2229,8 +2240,11 @@ static int sg_proc_open_dev(struct inode *inode, struct file *file);  static void * dev_seq_start(struct seq_file *s, loff_t *pos);  static void * dev_seq_next(struct seq_file *s, void *v, loff_t *pos);  static void dev_seq_stop(struct seq_file *s, void *v); -static struct file_operations dev_fops = { +static const struct file_operations dev_fops = { +	.owner = THIS_MODULE,  	.open = sg_proc_open_dev, +	.read = seq_read, +	.llseek = seq_lseek,  	.release = seq_release,  };  static const struct seq_operations dev_seq_ops = { @@ -2242,8 +2256,11 @@ static const struct seq_operations dev_seq_ops = {  static int sg_proc_seq_show_devstrs(struct seq_file *s, void *v);  static int sg_proc_open_devstrs(struct inode *inode, struct file *file); -static struct file_operations devstrs_fops = { +static const struct file_operations devstrs_fops = { +	.owner = THIS_MODULE,  	.open = sg_proc_open_devstrs, +	.read = seq_read, +	.llseek = seq_lseek,  	.release = seq_release,  };  static const struct seq_operations devstrs_seq_ops = { @@ -2255,8 +2272,11 @@ static const struct seq_operations devstrs_seq_ops = {  static int sg_proc_seq_show_debug(struct seq_file *s, void *v);  static int sg_proc_open_debug(struct inode *inode, struct file *file); -static struct file_operations debug_fops = { +static const struct file_operations debug_fops = { +	.owner = THIS_MODULE,  	.open = sg_proc_open_debug, +	.read = seq_read, +	.llseek = seq_lseek,  	.release = seq_release,  };  static const struct seq_operations debug_seq_ops = { @@ -2269,7 +2289,7 @@ static const struct seq_operations debug_seq_ops = {  struct sg_proc_leaf {  	const char * name; -	struct file_operations * fops; +	const struct file_operations * fops;  };  static struct sg_proc_leaf sg_proc_leaf_arr[] = { @@ -2295,9 +2315,6 @@ sg_proc_init(void)  	for (k = 0; k < num_leaves; ++k) {  		leaf = &sg_proc_leaf_arr[k];  		mask = leaf->fops->write ? S_IRUGO | S_IWUSR : S_IRUGO; -		leaf->fops->owner = THIS_MODULE; -		leaf->fops->read = seq_read; -		leaf->fops->llseek = seq_lseek;  		proc_create(leaf->name, mask, sg_proc_sgp, leaf->fops);  	}  	return 0; diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c index f921bd1109e..5d23983f02f 100644 --- a/drivers/spi/spidev.c +++ b/drivers/spi/spidev.c @@ -537,7 +537,7 @@ static int spidev_release(struct inode *inode, struct file *filp)  	return status;  } -static struct file_operations spidev_fops = { +static const struct file_operations spidev_fops = {  	.owner =	THIS_MODULE,  	/* REVISIT switch to aio primitives, so that userspace  	 * gets more complete API coverage.  It'll simplify things diff --git a/drivers/usb/class/usbtmc.c b/drivers/usb/class/usbtmc.c index 333ee02e7b2..864f0ba6a34 100644 --- a/drivers/usb/class/usbtmc.c +++ b/drivers/usb/class/usbtmc.c @@ -993,7 +993,7 @@ skip_io_on_zombie:  	return retval;  } -static struct file_operations fops = { +static const struct file_operations fops = {  	.owner		= THIS_MODULE,  	.read		= usbtmc_read,  	.write		= usbtmc_write, diff --git a/drivers/usb/gadget/printer.c b/drivers/usb/gadget/printer.c index 29500154d00..2d867fd2241 100644 --- a/drivers/usb/gadget/printer.c +++ b/drivers/usb/gadget/printer.c @@ -875,7 +875,7 @@ printer_ioctl(struct file *fd, unsigned int code, unsigned long arg)  }  /* used after endpoint configuration */ -static struct file_operations printer_io_operations = { +static const struct file_operations printer_io_operations = {  	.owner =	THIS_MODULE,  	.open =		printer_open,  	.read =		printer_read, diff --git a/drivers/usb/host/whci/debug.c b/drivers/usb/host/whci/debug.c index cf2d45946c5..2273c815941 100644 --- a/drivers/usb/host/whci/debug.c +++ b/drivers/usb/host/whci/debug.c @@ -134,7 +134,7 @@ static int pzl_open(struct inode *inode, struct file *file)  	return single_open(file, pzl_print, inode->i_private);  } -static struct file_operations di_fops = { +static const struct file_operations di_fops = {  	.open    = di_open,  	.read    = seq_read,  	.llseek  = seq_lseek, @@ -142,7 +142,7 @@ static struct file_operations di_fops = {  	.owner   = THIS_MODULE,  }; -static struct file_operations asl_fops = { +static const struct file_operations asl_fops = {  	.open    = asl_open,  	.read    = seq_read,  	.llseek  = seq_lseek, @@ -150,7 +150,7 @@ static struct file_operations asl_fops = {  	.owner   = THIS_MODULE,  }; -static struct file_operations pzl_fops = { +static const struct file_operations pzl_fops = {  	.open    = pzl_open,  	.read    = seq_read,  	.llseek  = seq_lseek, diff --git a/drivers/usb/misc/rio500.c b/drivers/usb/misc/rio500.c index d645f3899fe..32d0199d0c3 100644 --- a/drivers/usb/misc/rio500.c +++ b/drivers/usb/misc/rio500.c @@ -429,8 +429,7 @@ read_rio(struct file *file, char __user *buffer, size_t count, loff_t * ppos)  	return read_count;  } -static struct -file_operations usb_rio_fops = { +static const struct file_operations usb_rio_fops = {  	.owner =	THIS_MODULE,  	.read =		read_rio,  	.write =	write_rio, diff --git a/drivers/uwb/uwb-debug.c b/drivers/uwb/uwb-debug.c index 4a42993700c..2eecec0c13c 100644 --- a/drivers/uwb/uwb-debug.c +++ b/drivers/uwb/uwb-debug.c @@ -205,7 +205,7 @@ static ssize_t command_write(struct file *file, const char __user *buf,  	return ret < 0 ? ret : len;  } -static struct file_operations command_fops = { +static const struct file_operations command_fops = {  	.open   = command_open,  	.write  = command_write,  	.read   = NULL, @@ -255,7 +255,7 @@ static int reservations_open(struct inode *inode, struct file *file)  	return single_open(file, reservations_print, inode->i_private);  } -static struct file_operations reservations_fops = { +static const struct file_operations reservations_fops = {  	.open    = reservations_open,  	.read    = seq_read,  	.llseek  = seq_lseek, @@ -283,7 +283,7 @@ static int drp_avail_open(struct inode *inode, struct file *file)  	return single_open(file, drp_avail_print, inode->i_private);  } -static struct file_operations drp_avail_fops = { +static const struct file_operations drp_avail_fops = {  	.open    = drp_avail_open,  	.read    = seq_read,  	.llseek  = seq_lseek, diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h index 80599b4e42b..4484eb3408a 100644 --- a/fs/btrfs/ctree.h +++ b/fs/btrfs/ctree.h @@ -2326,7 +2326,7 @@ int btrfs_sync_file(struct file *file, struct dentry *dentry, int datasync);  int btrfs_drop_extent_cache(struct inode *inode, u64 start, u64 end,  			    int skip_pinned);  int btrfs_check_file(struct btrfs_root *root, struct inode *inode); -extern struct file_operations btrfs_file_operations; +extern const struct file_operations btrfs_file_operations;  int btrfs_drop_extents(struct btrfs_trans_handle *trans,  		       struct btrfs_root *root, struct inode *inode,  		       u64 start, u64 end, u64 locked_end, diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c index a3492a3ad96..9ed17dbe5c6 100644 --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c @@ -1196,7 +1196,7 @@ static int btrfs_file_mmap(struct file	*filp, struct vm_area_struct *vma)  	return 0;  } -struct file_operations btrfs_file_operations = { +const struct file_operations btrfs_file_operations = {  	.llseek		= generic_file_llseek,  	.read		= do_sync_read,  	.aio_read       = generic_file_aio_read, diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index e9b76bcd1c1..b9fe06d751c 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -62,7 +62,7 @@ static const struct inode_operations btrfs_special_inode_operations;  static const struct inode_operations btrfs_file_inode_operations;  static const struct address_space_operations btrfs_aops;  static const struct address_space_operations btrfs_symlink_aops; -static struct file_operations btrfs_dir_file_operations; +static const struct file_operations btrfs_dir_file_operations;  static struct extent_io_ops btrfs_extent_io_ops;  static struct kmem_cache *btrfs_inode_cachep; @@ -5544,7 +5544,7 @@ static const struct inode_operations btrfs_dir_ro_inode_operations = {  	.permission	= btrfs_permission,  }; -static struct file_operations btrfs_dir_file_operations = { +static const struct file_operations btrfs_dir_file_operations = {  	.llseek		= generic_file_llseek,  	.read		= generic_read_dir,  	.readdir	= btrfs_real_readdir, diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c index 761af77491f..b0ab5219bec 100644 --- a/fs/jbd2/journal.c +++ b/fs/jbd2/journal.c @@ -770,7 +770,7 @@ static int jbd2_seq_info_release(struct inode *inode, struct file *file)  	return seq_release(inode, file);  } -static struct file_operations jbd2_seq_info_fops = { +static const struct file_operations jbd2_seq_info_fops = {  	.owner		= THIS_MODULE,  	.open           = jbd2_seq_info_open,  	.read           = seq_read, diff --git a/fs/nfsd/nfsctl.c b/fs/nfsd/nfsctl.c index 00388d2a3c9..5c01fc148ce 100644 --- a/fs/nfsd/nfsctl.c +++ b/fs/nfsd/nfsctl.c @@ -176,7 +176,7 @@ static const struct file_operations exports_operations = {  extern int nfsd_pool_stats_open(struct inode *inode, struct file *file);  extern int nfsd_pool_stats_release(struct inode *inode, struct file *file); -static struct file_operations pool_stats_operations = { +static const struct file_operations pool_stats_operations = {  	.open		= nfsd_pool_stats_open,  	.read		= seq_read,  	.llseek		= seq_lseek, diff --git a/fs/nilfs2/dir.c b/fs/nilfs2/dir.c index 1a4fa04cf07..e097099bfc8 100644 --- a/fs/nilfs2/dir.c +++ b/fs/nilfs2/dir.c @@ -697,7 +697,7 @@ not_empty:  	return 0;  } -struct file_operations nilfs_dir_operations = { +const struct file_operations nilfs_dir_operations = {  	.llseek		= generic_file_llseek,  	.read		= generic_read_dir,  	.readdir	= nilfs_readdir, diff --git a/fs/nilfs2/file.c b/fs/nilfs2/file.c index 7d7b4983dee..30292df443c 100644 --- a/fs/nilfs2/file.c +++ b/fs/nilfs2/file.c @@ -134,7 +134,7 @@ static int nilfs_file_mmap(struct file *file, struct vm_area_struct *vma)   * We have mostly NULL's here: the current defaults are ok for   * the nilfs filesystem.   */ -struct file_operations nilfs_file_operations = { +const struct file_operations nilfs_file_operations = {  	.llseek		= generic_file_llseek,  	.read		= do_sync_read,  	.write		= do_sync_write, diff --git a/fs/nilfs2/mdt.c b/fs/nilfs2/mdt.c index b18c4998f8d..f6326112d64 100644 --- a/fs/nilfs2/mdt.c +++ b/fs/nilfs2/mdt.c @@ -433,7 +433,7 @@ static const struct address_space_operations def_mdt_aops = {  };  static const struct inode_operations def_mdt_iops; -static struct file_operations def_mdt_fops; +static const struct file_operations def_mdt_fops;  /*   * NILFS2 uses pseudo inodes for meta data files such as DAT, cpfile, sufile, diff --git a/fs/nilfs2/nilfs.h b/fs/nilfs2/nilfs.h index bad7368782d..4da6f67e9a9 100644 --- a/fs/nilfs2/nilfs.h +++ b/fs/nilfs2/nilfs.h @@ -294,9 +294,9 @@ void nilfs_clear_gcdat_inode(struct the_nilfs *);  /*   * Inodes and files operations   */ -extern struct file_operations nilfs_dir_operations; +extern const struct file_operations nilfs_dir_operations;  extern const struct inode_operations nilfs_file_inode_operations; -extern struct file_operations nilfs_file_operations; +extern const struct file_operations nilfs_file_operations;  extern const struct address_space_operations nilfs_aops;  extern const struct inode_operations nilfs_dir_inode_operations;  extern const struct inode_operations nilfs_special_inode_operations; diff --git a/fs/ocfs2/cluster/heartbeat.c b/fs/ocfs2/cluster/heartbeat.c index 09cc25d0461..c452d116b89 100644 --- a/fs/ocfs2/cluster/heartbeat.c +++ b/fs/ocfs2/cluster/heartbeat.c @@ -966,7 +966,7 @@ static ssize_t o2hb_debug_read(struct file *file, char __user *buf,  }  #endif  /* CONFIG_DEBUG_FS */ -static struct file_operations o2hb_debug_fops = { +static const struct file_operations o2hb_debug_fops = {  	.open =		o2hb_debug_open,  	.release =	o2hb_debug_release,  	.read =		o2hb_debug_read, diff --git a/fs/ocfs2/cluster/netdebug.c b/fs/ocfs2/cluster/netdebug.c index cfb2be708ab..da794bc07a6 100644 --- a/fs/ocfs2/cluster/netdebug.c +++ b/fs/ocfs2/cluster/netdebug.c @@ -207,7 +207,7 @@ static int nst_fop_release(struct inode *inode, struct file *file)  	return seq_release_private(inode, file);  } -static struct file_operations nst_seq_fops = { +static const struct file_operations nst_seq_fops = {  	.open = nst_fop_open,  	.read = seq_read,  	.llseek = seq_lseek, @@ -388,7 +388,7 @@ static int sc_fop_release(struct inode *inode, struct file *file)  	return seq_release_private(inode, file);  } -static struct file_operations sc_seq_fops = { +static const struct file_operations sc_seq_fops = {  	.open = sc_fop_open,  	.read = seq_read,  	.llseek = seq_lseek, diff --git a/fs/ocfs2/dlm/dlmdebug.c b/fs/ocfs2/dlm/dlmdebug.c index ca46002ec10..42b0bad7a61 100644 --- a/fs/ocfs2/dlm/dlmdebug.c +++ b/fs/ocfs2/dlm/dlmdebug.c @@ -478,7 +478,7 @@ bail:  	return -ENOMEM;  } -static struct file_operations debug_purgelist_fops = { +static const struct file_operations debug_purgelist_fops = {  	.open =		debug_purgelist_open,  	.release =	debug_buffer_release,  	.read =		debug_buffer_read, @@ -538,7 +538,7 @@ bail:  	return -ENOMEM;  } -static struct file_operations debug_mle_fops = { +static const struct file_operations debug_mle_fops = {  	.open =		debug_mle_open,  	.release =	debug_buffer_release,  	.read =		debug_buffer_read, @@ -741,7 +741,7 @@ static int debug_lockres_release(struct inode *inode, struct file *file)  	return seq_release_private(inode, file);  } -static struct file_operations debug_lockres_fops = { +static const struct file_operations debug_lockres_fops = {  	.open =		debug_lockres_open,  	.release =	debug_lockres_release,  	.read =		seq_read, @@ -925,7 +925,7 @@ bail:  	return -ENOMEM;  } -static struct file_operations debug_state_fops = { +static const struct file_operations debug_state_fops = {  	.open =		debug_state_open,  	.release =	debug_buffer_release,  	.read =		debug_buffer_read, diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c index 4cc3c890a2c..c0e48aeebb1 100644 --- a/fs/ocfs2/super.c +++ b/fs/ocfs2/super.c @@ -373,7 +373,7 @@ static ssize_t ocfs2_debug_read(struct file *file, char __user *buf,  }  #endif	/* CONFIG_DEBUG_FS */ -static struct file_operations ocfs2_osb_debug_fops = { +static const struct file_operations ocfs2_osb_debug_fops = {  	.open =		ocfs2_osb_debug_open,  	.release =	ocfs2_debug_release,  	.read =		ocfs2_debug_read, diff --git a/fs/omfs/dir.c b/fs/omfs/dir.c index 3680bae335b..b42d6241903 100644 --- a/fs/omfs/dir.c +++ b/fs/omfs/dir.c @@ -498,7 +498,7 @@ const struct inode_operations omfs_dir_inops = {  	.rmdir = omfs_rmdir,  }; -struct file_operations omfs_dir_operations = { +const struct file_operations omfs_dir_operations = {  	.read = generic_read_dir,  	.readdir = omfs_readdir,  	.llseek = generic_file_llseek, diff --git a/fs/omfs/file.c b/fs/omfs/file.c index 4845fbb18e6..399487c0936 100644 --- a/fs/omfs/file.c +++ b/fs/omfs/file.c @@ -322,7 +322,7 @@ static sector_t omfs_bmap(struct address_space *mapping, sector_t block)  	return generic_block_bmap(mapping, block, omfs_get_block);  } -struct file_operations omfs_file_operations = { +const struct file_operations omfs_file_operations = {  	.llseek = generic_file_llseek,  	.read = do_sync_read,  	.write = do_sync_write, diff --git a/fs/omfs/omfs.h b/fs/omfs/omfs.h index df71039945a..ebe2fdbe535 100644 --- a/fs/omfs/omfs.h +++ b/fs/omfs/omfs.h @@ -44,14 +44,14 @@ extern int omfs_allocate_range(struct super_block *sb, int min_request,  extern int omfs_clear_range(struct super_block *sb, u64 block, int count);  /* dir.c */ -extern struct file_operations omfs_dir_operations; +extern const struct file_operations omfs_dir_operations;  extern const struct inode_operations omfs_dir_inops;  extern int omfs_make_empty(struct inode *inode, struct super_block *sb);  extern int omfs_is_bad(struct omfs_sb_info *sbi, struct omfs_header *header,  			u64 fsblock);  /* file.c */ -extern struct file_operations omfs_file_operations; +extern const struct file_operations omfs_file_operations;  extern const struct inode_operations omfs_file_inops;  extern const struct address_space_operations omfs_aops;  extern void omfs_make_empty_table(struct buffer_head *bh, int offset); diff --git a/include/linux/cgroup.h b/include/linux/cgroup.h index b62bb9294d0..0008dee6651 100644 --- a/include/linux/cgroup.h +++ b/include/linux/cgroup.h @@ -37,7 +37,7 @@ extern void cgroup_exit(struct task_struct *p, int run_callbacks);  extern int cgroupstats_build(struct cgroupstats *stats,  				struct dentry *dentry); -extern struct file_operations proc_cgroup_operations; +extern const struct file_operations proc_cgroup_operations;  /* Define the enumeration of all cgroup subsystems */  #define SUBSYS(_x) _x ## _subsys_id, diff --git a/include/linux/fs.h b/include/linux/fs.h index 2adaa2529f1..a1e6899d4b6 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -2446,7 +2446,7 @@ static int __fops ## _open(struct inode *inode, struct file *file)	\  	__simple_attr_check_format(__fmt, 0ull);			\  	return simple_attr_open(inode, file, __get, __set, __fmt);	\  }									\ -static struct file_operations __fops = {				\ +static const struct file_operations __fops = {				\  	.owner	 = THIS_MODULE,						\  	.open	 = __fops ## _open,					\  	.release = simple_attr_release,					\ diff --git a/kernel/cgroup.c b/kernel/cgroup.c index 7ccba4bc5e3..d2b88596efd 100644 --- a/kernel/cgroup.c +++ b/kernel/cgroup.c @@ -703,7 +703,7 @@ static int cgroup_mkdir(struct inode *dir, struct dentry *dentry, int mode);  static int cgroup_rmdir(struct inode *unused_dir, struct dentry *dentry);  static int cgroup_populate_dir(struct cgroup *cgrp);  static const struct inode_operations cgroup_dir_inode_operations; -static struct file_operations proc_cgroupstats_operations; +static const struct file_operations proc_cgroupstats_operations;  static struct backing_dev_info cgroup_backing_dev_info = {  	.name		= "cgroup", @@ -1863,7 +1863,7 @@ static int cgroup_seqfile_release(struct inode *inode, struct file *file)  	return single_release(inode, file);  } -static struct file_operations cgroup_seqfile_operations = { +static const struct file_operations cgroup_seqfile_operations = {  	.read = seq_read,  	.write = cgroup_file_write,  	.llseek = seq_lseek, @@ -1922,7 +1922,7 @@ static int cgroup_rename(struct inode *old_dir, struct dentry *old_dentry,  	return simple_rename(old_dir, old_dentry, new_dir, new_dentry);  } -static struct file_operations cgroup_file_operations = { +static const struct file_operations cgroup_file_operations = {  	.read = cgroup_file_read,  	.write = cgroup_file_write,  	.llseek = generic_file_llseek, @@ -3369,7 +3369,7 @@ static int cgroup_open(struct inode *inode, struct file *file)  	return single_open(file, proc_cgroup_show, pid);  } -struct file_operations proc_cgroup_operations = { +const struct file_operations proc_cgroup_operations = {  	.open		= cgroup_open,  	.read		= seq_read,  	.llseek		= seq_lseek, @@ -3398,7 +3398,7 @@ static int cgroupstats_open(struct inode *inode, struct file *file)  	return single_open(file, proc_cgroupstats_show, NULL);  } -static struct file_operations proc_cgroupstats_operations = { +static const struct file_operations proc_cgroupstats_operations = {  	.open = cgroupstats_open,  	.read = seq_read,  	.llseek = seq_lseek, diff --git a/kernel/kprobes.c b/kernel/kprobes.c index cfadc1291d0..5240d75f4c6 100644 --- a/kernel/kprobes.c +++ b/kernel/kprobes.c @@ -1333,7 +1333,7 @@ static int __kprobes kprobes_open(struct inode *inode, struct file *filp)  	return seq_open(filp, &kprobes_seq_ops);  } -static struct file_operations debugfs_kprobes_operations = { +static const struct file_operations debugfs_kprobes_operations = {  	.open           = kprobes_open,  	.read           = seq_read,  	.llseek         = seq_lseek, @@ -1515,7 +1515,7 @@ static ssize_t write_enabled_file_bool(struct file *file,  	return count;  } -static struct file_operations fops_kp = { +static const struct file_operations fops_kp = {  	.read =         read_enabled_file_bool,  	.write =        write_enabled_file_bool,  }; diff --git a/kernel/rcutree_trace.c b/kernel/rcutree_trace.c index c89f5e9fd17..179e6ad80dc 100644 --- a/kernel/rcutree_trace.c +++ b/kernel/rcutree_trace.c @@ -93,7 +93,7 @@ static int rcudata_open(struct inode *inode, struct file *file)  	return single_open(file, show_rcudata, NULL);  } -static struct file_operations rcudata_fops = { +static const struct file_operations rcudata_fops = {  	.owner = THIS_MODULE,  	.open = rcudata_open,  	.read = seq_read, @@ -145,7 +145,7 @@ static int rcudata_csv_open(struct inode *inode, struct file *file)  	return single_open(file, show_rcudata_csv, NULL);  } -static struct file_operations rcudata_csv_fops = { +static const struct file_operations rcudata_csv_fops = {  	.owner = THIS_MODULE,  	.open = rcudata_csv_open,  	.read = seq_read, @@ -196,7 +196,7 @@ static int rcuhier_open(struct inode *inode, struct file *file)  	return single_open(file, show_rcuhier, NULL);  } -static struct file_operations rcuhier_fops = { +static const struct file_operations rcuhier_fops = {  	.owner = THIS_MODULE,  	.open = rcuhier_open,  	.read = seq_read, @@ -222,7 +222,7 @@ static int rcugp_open(struct inode *inode, struct file *file)  	return single_open(file, show_rcugp, NULL);  } -static struct file_operations rcugp_fops = { +static const struct file_operations rcugp_fops = {  	.owner = THIS_MODULE,  	.open = rcugp_open,  	.read = seq_read, @@ -276,7 +276,7 @@ static int rcu_pending_open(struct inode *inode, struct file *file)  	return single_open(file, show_rcu_pending, NULL);  } -static struct file_operations rcu_pending_fops = { +static const struct file_operations rcu_pending_fops = {  	.owner = THIS_MODULE,  	.open = rcu_pending_open,  	.read = seq_read, diff --git a/kernel/sched.c b/kernel/sched.c index ee61f454a98..1535f3884b8 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -780,7 +780,7 @@ static int sched_feat_open(struct inode *inode, struct file *filp)  	return single_open(filp, sched_feat_show, NULL);  } -static struct file_operations sched_feat_fops = { +static const struct file_operations sched_feat_fops = {  	.open		= sched_feat_open,  	.write		= sched_feat_write,  	.read		= seq_read, diff --git a/kernel/time/timer_list.c b/kernel/time/timer_list.c index fddd69d16e0..1b5b7aa2fdf 100644 --- a/kernel/time/timer_list.c +++ b/kernel/time/timer_list.c @@ -275,7 +275,7 @@ static int timer_list_open(struct inode *inode, struct file *filp)  	return single_open(filp, timer_list_show, NULL);  } -static struct file_operations timer_list_fops = { +static const struct file_operations timer_list_fops = {  	.open		= timer_list_open,  	.read		= seq_read,  	.llseek		= seq_lseek, diff --git a/kernel/time/timer_stats.c b/kernel/time/timer_stats.c index 4cde8b9c716..ee5681f8d7e 100644 --- a/kernel/time/timer_stats.c +++ b/kernel/time/timer_stats.c @@ -395,7 +395,7 @@ static int tstats_open(struct inode *inode, struct file *filp)  	return single_open(filp, tstats_show, NULL);  } -static struct file_operations tstats_fops = { +static const struct file_operations tstats_fops = {  	.open		= tstats_open,  	.read		= seq_read,  	.write		= tstats_write, diff --git a/samples/tracepoints/tracepoint-sample.c b/samples/tracepoints/tracepoint-sample.c index 9cf80a11e8b..26fab33ffa8 100644 --- a/samples/tracepoints/tracepoint-sample.c +++ b/samples/tracepoints/tracepoint-sample.c @@ -28,7 +28,7 @@ static int my_open(struct inode *inode, struct file *file)  	return -EPERM;  } -static struct file_operations mark_ops = { +static const struct file_operations mark_ops = {  	.open = my_open,  }; diff --git a/security/integrity/ima/ima_fs.c b/security/integrity/ima/ima_fs.c index 8e9777b7640..0c72c9c3895 100644 --- a/security/integrity/ima/ima_fs.c +++ b/security/integrity/ima/ima_fs.c @@ -43,7 +43,7 @@ static ssize_t ima_show_htable_violations(struct file *filp,  	return ima_show_htable_value(buf, count, ppos, &ima_htable.violations);  } -static struct file_operations ima_htable_violations_ops = { +static const struct file_operations ima_htable_violations_ops = {  	.read = ima_show_htable_violations  }; @@ -55,7 +55,7 @@ static ssize_t ima_show_measurements_count(struct file *filp,  } -static struct file_operations ima_measurements_count_ops = { +static const struct file_operations ima_measurements_count_ops = {  	.read = ima_show_measurements_count  }; @@ -158,7 +158,7 @@ static int ima_measurements_open(struct inode *inode, struct file *file)  	return seq_open(file, &ima_measurments_seqops);  } -static struct file_operations ima_measurements_ops = { +static const struct file_operations ima_measurements_ops = {  	.open = ima_measurements_open,  	.read = seq_read,  	.llseek = seq_lseek, @@ -233,7 +233,7 @@ static int ima_ascii_measurements_open(struct inode *inode, struct file *file)  	return seq_open(file, &ima_ascii_measurements_seqops);  } -static struct file_operations ima_ascii_measurements_ops = { +static const struct file_operations ima_ascii_measurements_ops = {  	.open = ima_ascii_measurements_open,  	.read = seq_read,  	.llseek = seq_lseek, @@ -313,7 +313,7 @@ static int ima_release_policy(struct inode *inode, struct file *file)  	return 0;  } -static struct file_operations ima_measure_policy_ops = { +static const struct file_operations ima_measure_policy_ops = {  	.open = ima_open_policy,  	.write = ima_write_policy,  	.release = ima_release_policy diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index b5e7e3f1183..e79c54034bc 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@ -2625,7 +2625,7 @@ static int vcpu_stat_get(void *_offset, u64 *val)  DEFINE_SIMPLE_ATTRIBUTE(vcpu_stat_fops, vcpu_stat_get, NULL, "%llu\n"); -static struct file_operations *stat_fops[] = { +static const struct file_operations *stat_fops[] = {  	[KVM_STAT_VCPU] = &vcpu_stat_fops,  	[KVM_STAT_VM]   = &vm_stat_fops,  };  |