fs: kill default_llseek
Subsystems (61)
PATCH 1/1 fs: kill default_llseek
Looking at this llseek stuff I noticed that default_llseek is the exact same as generic_file_llseek, so kill default_llseek. I patched this using spatch with just a simple
@@
@@
- default_llseek
+ generic_file_llseek
and then I manually removed the default_llseek definitions. I've built and booted this and it works fine. Thanks,
--- arch/arm/mach-msm/last_radio_log.c | 2 +- arch/arm/mach-msm/smd_debug.c | 2 +- arch/arm/plat-mxc/audmux-v2.c | 2 +- arch/cris/kernel/profile.c | 2 +- arch/ia64/kernel/salinfo.c | 2 +- arch/mips/sibyte/common/sb_tbprof.c | 2 +- arch/powerpc/kernel/rtas_flash.c | 6 ++-- arch/powerpc/platforms/iseries/mf.c | 2 +- arch/um/drivers/mmapper_kern.c | 2 +- arch/x86/kernel/kdebugfs.c | 2 +- arch/x86/platform/uv/tlb_uv.c | 2 +- block/bsg.c | 2 +- drivers/acpi/debugfs.c | 2 +- drivers/acpi/ec_sys.c | 2 +- drivers/acpi/event.c | 2 +- drivers/bluetooth/btmrvl_debugfs.c | 20 ++++++++-------- drivers/char/bfin-otp.c | 2 +- drivers/char/mem.c | 2 +- drivers/char/mwave/mwavedd.c | 2 +- drivers/char/raw.c | 2 +- drivers/dma/coh901318.c | 2 +- drivers/gpu/drm/i915/i915_debugfs.c | 2 +- drivers/idle/i7300_idle.c | 2 +- drivers/infiniband/hw/cxgb4/device.c | 4 +- drivers/infiniband/hw/ipath/ipath_diag.c | 2 +- drivers/infiniband/hw/ipath/ipath_fs.c | 6 ++-- drivers/infiniband/hw/qib/qib_diag.c | 2 +- drivers/infiniband/hw/qib/qib_fs.c | 2 +- drivers/lguest/lguest_user.c | 2 +- drivers/macintosh/ans-lcd.c | 2 +- drivers/media/dvb/dvb-core/dmxdev.c | 4 +- drivers/media/dvb/ttpci/av7110_ca.c | 2 +- drivers/mmc/core/debugfs.c | 2 +- drivers/net/cxgb4/cxgb4_main.c | 2 +- drivers/net/wimax/i2400m/debugfs.c | 4 +- drivers/net/wireless/airo.c | 16 ++++++------ drivers/net/wireless/ath/ath5k/debug.c | 12 +++++----- drivers/net/wireless/ath/ath9k/debug.c | 26 ++++++++++---------- drivers/net/wireless/ath/ath9k/htc_drv_main.c | 6 ++-- drivers/net/wireless/iwlegacy/iwl-3945-rs.c | 2 +- drivers/net/wireless/iwlegacy/iwl-4965-rs.c | 6 ++-- drivers/net/wireless/iwlwifi/iwl-agn-rs.c | 6 ++-- drivers/net/wireless/iwmc3200wifi/debugfs.c | 8 +++--- drivers/net/wireless/iwmc3200wifi/sdio.c | 2 +- drivers/net/wireless/libertas/debugfs.c | 2 +- drivers/net/wireless/rt2x00/rt2x00debug.c | 8 +++--- drivers/net/wireless/wl12xx/debugfs.c | 4 +- drivers/oprofile/oprofile_files.c | 10 ++++---- drivers/oprofile/oprofilefs.c | 6 ++-- drivers/spi/dw_spi.c | 2 +- drivers/staging/panel/panel.c | 2 +- drivers/staging/tty/istallion.c | 2 +- drivers/telephony/ixj.c | 2 +- drivers/tty/serial/mfd.c | 4 +- drivers/usb/class/usbtmc.c | 2 +- drivers/usb/host/ehci-dbg.c | 6 ++-- drivers/usb/host/ohci-dbg.c | 6 ++-- drivers/usb/misc/idmouse.c | 2 +- drivers/usb/misc/yurex.c | 2 +- drivers/video/fbmem.c | 2 +- drivers/video/mbx/mbxdebugfs.c | 12 +++++----- drivers/xen/xenfs/super.c | 2 +- fs/binfmt_misc.c | 4 +- fs/debugfs/file.c | 4 +- fs/dlm/debug_fs.c | 2 +- fs/ecryptfs/file.c | 2 +- fs/gfs2/file.c | 4 +- fs/hppfs/hppfs.c | 4 +- fs/hugetlbfs/inode.c | 2 +- fs/logfs/dir.c | 2 +- fs/nfsd/nfsctl.c | 2 +- fs/ocfs2/dlmfs/dlmfs.c | 2 +- fs/ocfs2/stack_user.c | 2 +- fs/proc/base.c | 14 +++++----- fs/proc/inode.c | 2 +- fs/proc/kcore.c | 2 +- fs/proc/proc_sysctl.c | 2 +- fs/proc/root.c | 2 +- fs/proc/vmcore.c | 2 +- fs/pstore/inode.c | 2 +- fs/read_write.c | 30 ------------------------- fs/romfs/super.c | 2 +- fs/squashfs/dir.c | 2 +- fs/ubifs/debug.c | 2 +- include/linux/fs.h | 2 - ipc/mqueue.c | 2 +- kernel/configs.c | 2 +- kernel/kprobes.c | 2 +- kernel/profile.c | 2 +- kernel/trace/blktrace.c | 2 +- kernel/trace/ftrace.c | 2 +- kernel/trace/ring_buffer.c | 2 +- kernel/trace/trace_events.c | 12 +++++----- kernel/trace/trace_stack.c | 2 +- lib/dma-debug.c | 2 +- net/mac80211/debugfs.c | 12 +++++----- net/mac80211/rate.c | 2 +- net/mac80211/rc80211_minstrel_debugfs.c | 2 +- net/wireless/debugfs.c | 2 +- security/apparmor/apparmorfs.c | 6 ++-- security/smack/smackfs.c | 10 ++++---- sound/soc/soc-core.c | 8 +++--- sound/soc/soc-dapm.c | 2 +- 103 files changed, 199 insertions(+), 231 deletions(-)
arch/arm/mach-msm/last_radio_log.c +1 -1
@@ -49,7 +49,7 @@ static ssize_t last_radio_log_read(struct file *file, char __user *buf,static struct file_operations last_radio_log_fops = { .read = last_radio_log_read, - .llseek = default_llseek, + .llseek = generic_file_llseek, };void msm_init_last_radio_log (struct module *owner)
arch/arm/mach-msm/smd_debug.c +1 -1
@@ -212,7 +212,7 @@ static int debug_open(struct inode *inode, struct file *file)static const struct file_operations debug_ops = { .read = debug_read, .open = debug_open, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static void debug_create(const char *name, mode_t mode,
arch/arm/plat-mxc/audmux-v2.c +1 -1
@@ -137,7 +137,7 @@ static ssize_t audmux_read_file(struct file *file, char __user *user_buf,static const struct file_operations audmux_debugfs_fops = { .open = audmux_open_file, .read = audmux_read_file, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static void audmux_debugfs_init (void )
arch/cris/kernel/profile.c +1 -1
@@ -59,7 +59,7 @@ write_cris_profile(struct file *file, const char __user *buf,static const struct file_operations cris_proc_profile_operations = { .read = read_cris_profile, .write = write_cris_profile, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static int __init init_cris_profile (void )
arch/ia64/kernel/salinfo.c +1 -1
@@ -572,7 +572,7 @@ static const struct file_operations salinfo_data_fops = { .release = salinfo_log_release, .read = salinfo_log_read, .write = salinfo_log_write, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static int __cpuinit
arch/mips/sibyte/common/sb_tbprof.c +1 -1
@@ -544,7 +544,7 @@ static const struct file_operations sbprof_tb_fops = { .unlocked_ioctl = sbprof_tb_ioctl, .compat_ioctl = sbprof_tb_ioctl, .mmap = NULL, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static struct class *tb_class;
arch/powerpc/kernel/rtas_flash.c +3 -3
@@ -675,7 +675,7 @@ static const struct file_operations rtas_flash_operations = { .write = rtas_flash_write, .open = rtas_excl_open, .release = rtas_flash_release, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct file_operations manage_flash_operations = {
@@ -684,7 +684,7 @@ static const struct file_operations manage_flash_operations = { .write = manage_flash_write, .open = rtas_excl_open, .release = rtas_excl_release, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct file_operations validate_flash_operations = {
@@ -693,7 +693,7 @@ static const struct file_operations validate_flash_operations = { .write = validate_flash_write, .open = rtas_excl_open, .release = validate_flash_release, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static int __init rtas_flash_init (void )
arch/powerpc/platforms/iseries/mf.c +1 -1
@@ -1187,7 +1187,7 @@ out:static const struct file_operations proc_vmlinux_operations = { .write = proc_mf_change_vmlinux, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static int __init mf_proc_init (void )
arch/um/drivers/mmapper_kern.c +1 -1
@@ -87,7 +87,7 @@ static const struct file_operations mmapper_fops = { .mmap = mmapper_mmap, .open = mmapper_open, .release = mmapper_release, - .llseek = default_llseek, + .llseek = generic_file_llseek, };/*
arch/x86/kernel/kdebugfs.c +1 -1
@@ -78,7 +78,7 @@ static int setup_data_open(struct inode *inode, struct file *file)static const struct file_operations fops_setup_data = { .read = setup_data_read, .open = setup_data_open, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static int __init
arch/x86/platform/uv/tlb_uv.c +1 -1
@@ -1291,7 +1291,7 @@ static const struct file_operations tunables_fops = { .open = tunables_open, .read = tunables_read, .write = tunables_write, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static int __init uv_ptc_init (void )
block/bsg.c +1 -1
@@ -973,7 +973,7 @@ static const struct file_operations bsg_fops = { .release = bsg_release, .unlocked_ioctl = bsg_ioctl, .owner = THIS_MODULE, - .llseek = default_llseek, + .llseek = generic_file_llseek, };void bsg_unregister_queue (struct request_queue *q)
drivers/acpi/debugfs.c +1 -1
@@ -77,7 +77,7 @@ static ssize_t cm_write(struct file *file, const char __user * user_buf,static const struct file_operations cm_fops = { .write = cm_write, - .llseek = default_llseek, + .llseek = generic_file_llseek, };int __init acpi_debugfs_init (void )
drivers/acpi/ec_sys.c +1 -1
@@ -97,7 +97,7 @@ static struct file_operations acpi_ec_io_ops = { .open = acpi_ec_open_io, .read = acpi_ec_read_io, .write = acpi_ec_write_io, - .llseek = default_llseek, + .llseek = generic_file_llseek, };int acpi_ec_add_debugfs (struct acpi_ec *ec,unsigned int ec_device_count)
drivers/acpi/event.c +1 -1
@@ -110,7 +110,7 @@ static const struct file_operations acpi_system_event_ops = { .read = acpi_system_read_event, .release = acpi_system_close_event, .poll = acpi_system_poll_event, - .llseek = default_llseek, + .llseek = generic_file_llseek, };#endif /* CONFIG_ACPI_PROC_EVENT */
drivers/bluetooth/btmrvl_debugfs.c +10 -10
@@ -92,7 +92,7 @@ static const struct file_operations btmrvl_hscfgcmd_fops = { .read = btmrvl_hscfgcmd_read, .write = btmrvl_hscfgcmd_write, .open = btmrvl_open_generic, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static ssize_t btmrvl_psmode_write(struct file *file, const char __user *ubuf,
@@ -131,7 +131,7 @@ static const struct file_operations btmrvl_psmode_fops = { .read = btmrvl_psmode_read, .write = btmrvl_psmode_write, .open = btmrvl_open_generic, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static ssize_t btmrvl_pscmd_write(struct file *file, const char __user *ubuf,
@@ -175,7 +175,7 @@ static const struct file_operations btmrvl_pscmd_fops = { .read = btmrvl_pscmd_read, .write = btmrvl_pscmd_write, .open = btmrvl_open_generic, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static ssize_t btmrvl_gpiogap_write(struct file *file, const char __user *ubuf,
@@ -214,7 +214,7 @@ static const struct file_operations btmrvl_gpiogap_fops = { .read = btmrvl_gpiogap_read, .write = btmrvl_gpiogap_write, .open = btmrvl_open_generic, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static ssize_t btmrvl_hscmd_write(struct file *file, const char __user *ubuf,
@@ -256,7 +256,7 @@ static const struct file_operations btmrvl_hscmd_fops = { .read = btmrvl_hscmd_read, .write = btmrvl_hscmd_write, .open = btmrvl_open_generic, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static ssize_t btmrvl_hsmode_write(struct file *file, const char __user *ubuf,
@@ -294,7 +294,7 @@ static const struct file_operations btmrvl_hsmode_fops = { .read = btmrvl_hsmode_read, .write = btmrvl_hsmode_write, .open = btmrvl_open_generic, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static ssize_t btmrvl_curpsmode_read(struct file *file, char __user *userbuf,
@@ -312,7 +312,7 @@ static ssize_t btmrvl_curpsmode_read(struct file *file, char __user *userbuf,static const struct file_operations btmrvl_curpsmode_fops = { .read = btmrvl_curpsmode_read, .open = btmrvl_open_generic, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static ssize_t btmrvl_psstate_read(struct file *file, char __user * userbuf,
@@ -330,7 +330,7 @@ static ssize_t btmrvl_psstate_read(struct file *file, char __user * userbuf,static const struct file_operations btmrvl_psstate_fops = { .read = btmrvl_psstate_read, .open = btmrvl_open_generic, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static ssize_t btmrvl_hsstate_read(struct file *file, char __user *userbuf,
@@ -348,7 +348,7 @@ static ssize_t btmrvl_hsstate_read(struct file *file, char __user *userbuf,static const struct file_operations btmrvl_hsstate_fops = { .read = btmrvl_hsstate_read, .open = btmrvl_open_generic, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static ssize_t btmrvl_txdnldready_read(struct file *file, char __user *userbuf,
@@ -367,7 +367,7 @@ static ssize_t btmrvl_txdnldready_read(struct file *file, char __user *userbuf,static const struct file_operations btmrvl_txdnldready_fops = { .read = btmrvl_txdnldready_read, .open = btmrvl_open_generic, - .llseek = default_llseek, + .llseek = generic_file_llseek, };void btmrvl_debugfs_init (struct hci_dev *hdev)
drivers/char/bfin-otp.c +1 -1
@@ -222,7 +222,7 @@ static const struct file_operations bfin_otp_fops = { .unlocked_ioctl = bfin_otp_ioctl, .read = bfin_otp_read, .write = bfin_otp_write, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static struct miscdevice bfin_otp_misc_device = {
drivers/char/mem.c +1 -1
@@ -802,7 +802,7 @@ static const struct file_operations full_fops = {static const struct file_operations oldmem_fops = { .read = read_oldmem, .open = open_oldmem, - .llseek = default_llseek, + .llseek = generic_file_llseek, };#endif
drivers/char/mwave/mwavedd.c +1 -1
@@ -480,7 +480,7 @@ static const struct file_operations mwave_fops = { .unlocked_ioctl = mwave_ioctl, .open = mwave_open, .release = mwave_close, - .llseek = default_llseek, + .llseek = generic_file_llseek, };
drivers/char/raw.c +1 -1
@@ -286,7 +286,7 @@ static const struct file_operations raw_fops = { .open = raw_open, .release = raw_release, .unlocked_ioctl = raw_ioctl, - .llseek = default_llseek, + .llseek = generic_file_llseek, .owner = THIS_MODULE, };
drivers/dma/coh901318.c +1 -1
@@ -157,7 +157,7 @@ static const struct file_operations coh901318_debugfs_status_operations = { .owner = THIS_MODULE, .open = coh901318_debugfs_open, .read = coh901318_debugfs_read, - .llseek = default_llseek, + .llseek = generic_file_llseek, };
drivers/gpu/drm/i915/i915_debugfs.c +1 -1
@@ -1247,7 +1247,7 @@ static const struct file_operations i915_wedged_fops = { .open = i915_wedged_open, .read = i915_wedged_read, .write = i915_wedged_write, - .llseek = default_llseek, + .llseek = generic_file_llseek, };/* As the drm_debugfs_init() routines are called before dev->dev_private is
drivers/idle/i7300_idle.c +1 -1
@@ -536,7 +536,7 @@ static ssize_t stats_read_ul(struct file *fp, char __user *ubuf, size_t count,static const struct file_operations idle_fops = { .open = stats_open_generic, .read = stats_read_ul, - .llseek = default_llseek, + .llseek = generic_file_llseek, };struct debugfs_file_info {
drivers/infiniband/hw/cxgb4/device.c +2 -2
@@ -163,7 +163,7 @@ static const struct file_operations qp_debugfs_fops = { .open = qp_open, .release = qp_release, .read = debugfs_read, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static int dump_stag (int id,void *p,void *data)
@@ -237,7 +237,7 @@ static const struct file_operations stag_debugfs_fops = { .open = stag_open, .release = stag_release, .read = debugfs_read, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static int setup_debugfs (struct c4iw_dev *devp)
drivers/infiniband/hw/ipath/ipath_diag.c +1 -1
@@ -66,7 +66,7 @@ static const struct file_operations diag_file_ops = { .read = ipath_diag_read, .open = ipath_diag_open, .release = ipath_diag_release, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static ssize_t ipath_diagpkt_write(struct file *fp,
drivers/infiniband/hw/ipath/ipath_fs.c +3 -3
@@ -104,7 +104,7 @@ static ssize_t atomic_stats_read(struct file *file, char __user *buf,static const struct file_operations atomic_stats_ops = { .read = atomic_stats_read, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static ssize_t atomic_counters_read(struct file *file, char __user *buf,
@@ -122,7 +122,7 @@ static ssize_t atomic_counters_read(struct file *file, char __user *buf,static const struct file_operations atomic_counters_ops = { .read = atomic_counters_read, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static ssize_t flash_read(struct file *file, char __user *buf,
@@ -227,7 +227,7 @@ bail:static const struct file_operations flash_ops = { .read = flash_read, .write = flash_write, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static int create_device_files(struct super_block *sb,
drivers/infiniband/hw/qib/qib_diag.c +1 -1
@@ -137,7 +137,7 @@ static const struct file_operations diag_file_ops = { .read = qib_diag_read, .open = qib_diag_open, .release = qib_diag_release, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static atomic_t diagpkt_count =ATOMIC_INIT (0 );
drivers/infiniband/hw/qib/qib_fs.c +1 -1
@@ -368,7 +368,7 @@ bail:static const struct file_operations flash_ops = { .read = flash_read, .write = flash_write, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static int add_cntr_files (struct super_block *sb,struct qib_devdata *dd)
drivers/lguest/lguest_user.c +1 -1
@@ -514,7 +514,7 @@ static const struct file_operations lguest_fops = { .release = close, .write = write, .read = read, - .llseek = default_llseek, + .llseek = generic_file_llseek, };/*
drivers/macintosh/ans-lcd.c +1 -1
@@ -137,7 +137,7 @@ const struct file_operations anslcd_fops = { .write = anslcd_write, .unlocked_ioctl = anslcd_ioctl, .open = anslcd_open, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static struct miscdevice anslcd_dev = {
drivers/media/dvb/dvb-core/dmxdev.c +2 -2
@@ -1143,7 +1143,7 @@ static const struct file_operations dvb_demux_fops = { .open = dvb_demux_open, .release = dvb_demux_release, .poll = dvb_demux_poll, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static struct dvb_device dvbdev_demux = {
@@ -1213,7 +1213,7 @@ static const struct file_operations dvb_dvr_fops = { .open = dvb_dvr_open, .release = dvb_dvr_release, .poll = dvb_dvr_poll, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static struct dvb_device dvbdev_dvr = {
drivers/media/dvb/ttpci/av7110_ca.c +1 -1
@@ -353,7 +353,7 @@ static const struct file_operations dvb_ca_fops = { .open = dvb_ca_open, .release = dvb_generic_release, .poll = dvb_ca_poll, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static struct dvb_device dvbdev_ca = {
drivers/mmc/core/debugfs.c +1 -1
@@ -281,7 +281,7 @@ 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, - .llseek = default_llseek, + .llseek = generic_file_llseek, };void mmc_add_card_debugfs (struct mmc_card *card)
drivers/net/cxgb4/cxgb4_main.c +1 -1
@@ -2082,7 +2082,7 @@ static const struct file_operations mem_debugfs_fops = { .owner = THIS_MODULE, .open = mem_open, .read = mem_read, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static void __devinit add_debugfs_mem(struct adapter *adap, const char *name,
drivers/net/wimax/i2400m/debugfs.c +2 -2
@@ -119,7 +119,7 @@ const struct file_operations i2400m_rx_stats_fops = { .open = i2400m_stats_open, .read = i2400m_rx_stats_read, .write = i2400m_rx_stats_write, - .llseek = default_llseek, + .llseek = generic_file_llseek, };
@@ -172,7 +172,7 @@ const struct file_operations i2400m_tx_stats_fops = { .open = i2400m_stats_open, .read = i2400m_tx_stats_read, .write = i2400m_tx_stats_write, - .llseek = default_llseek, + .llseek = generic_file_llseek, };
drivers/net/wireless/airo.c +8 -8
@@ -4419,7 +4419,7 @@ static const struct file_operations proc_statsdelta_ops = { .read = proc_read, .open = proc_statsdelta_open, .release = proc_close, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct file_operations proc_stats_ops = {
@@ -4427,7 +4427,7 @@ static const struct file_operations proc_stats_ops = { .read = proc_read, .open = proc_stats_open, .release = proc_close, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct file_operations proc_status_ops = {
@@ -4435,7 +4435,7 @@ static const struct file_operations proc_status_ops = { .read = proc_read, .open = proc_status_open, .release = proc_close, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct file_operations proc_SSID_ops = {
@@ -4444,7 +4444,7 @@ static const struct file_operations proc_SSID_ops = { .write = proc_write, .open = proc_SSID_open, .release = proc_close, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct file_operations proc_BSSList_ops = {
@@ -4453,7 +4453,7 @@ static const struct file_operations proc_BSSList_ops = { .write = proc_write, .open = proc_BSSList_open, .release = proc_close, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct file_operations proc_APList_ops = {
@@ -4462,7 +4462,7 @@ static const struct file_operations proc_APList_ops = { .write = proc_write, .open = proc_APList_open, .release = proc_close, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct file_operations proc_config_ops = {
@@ -4471,7 +4471,7 @@ static const struct file_operations proc_config_ops = { .write = proc_write, .open = proc_config_open, .release = proc_close, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct file_operations proc_wepkey_ops = {
@@ -4480,7 +4480,7 @@ static const struct file_operations proc_wepkey_ops = { .write = proc_write, .open = proc_wepkey_open, .release = proc_close, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static struct proc_dir_entry *airo_entry;
drivers/net/wireless/ath/ath5k/debug.c +6 -6
@@ -269,7 +269,7 @@ static const struct file_operations fops_beacon = { .write = write_file_beacon, .open = ath5k_debugfs_open, .owner = THIS_MODULE, - .llseek = default_llseek, + .llseek = generic_file_llseek, };
@@ -369,7 +369,7 @@ static const struct file_operations fops_debug = { .write = write_file_debug, .open = ath5k_debugfs_open, .owner = THIS_MODULE, - .llseek = default_llseek, + .llseek = generic_file_llseek, };
@@ -481,7 +481,7 @@ static const struct file_operations fops_antenna = { .write = write_file_antenna, .open = ath5k_debugfs_open, .owner = THIS_MODULE, - .llseek = default_llseek, + .llseek = generic_file_llseek, };/* debugfs: misc */
@@ -651,7 +651,7 @@ static const struct file_operations fops_frameerrors = { .write = write_file_frameerrors, .open = ath5k_debugfs_open, .owner = THIS_MODULE, - .llseek = default_llseek, + .llseek = generic_file_llseek, };
@@ -810,7 +810,7 @@ static const struct file_operations fops_ani = { .write = write_file_ani, .open = ath5k_debugfs_open, .owner = THIS_MODULE, - .llseek = default_llseek, + .llseek = generic_file_llseek, };
@@ -881,7 +881,7 @@ static const struct file_operations fops_queue = { .write = write_file_queue, .open = ath5k_debugfs_open, .owner = THIS_MODULE, - .llseek = default_llseek, + .llseek = generic_file_llseek, };
drivers/net/wireless/ath/ath9k/debug.c +13 -13
@@ -84,7 +84,7 @@ static const struct file_operations fops_debug = { .write = write_file_debug, .open = ath9k_debugfs_open, .owner = THIS_MODULE, - .llseek = default_llseek, + .llseek = generic_file_llseek, };#endif
@@ -130,7 +130,7 @@ static const struct file_operations fops_tx_chainmask = { .write = write_file_tx_chainmask, .open = ath9k_debugfs_open, .owner = THIS_MODULE, - .llseek = default_llseek, + .llseek = generic_file_llseek, };
@@ -173,7 +173,7 @@ static const struct file_operations fops_rx_chainmask = { .write = write_file_rx_chainmask, .open = ath9k_debugfs_open, .owner = THIS_MODULE, - .llseek = default_llseek, + .llseek = generic_file_llseek, };
@@ -275,7 +275,7 @@ static const struct file_operations fops_dma = { .read = read_file_dma, .open = ath9k_debugfs_open, .owner = THIS_MODULE, - .llseek = default_llseek, + .llseek = generic_file_llseek, };
@@ -392,7 +392,7 @@ static const struct file_operations fops_interrupt = { .read = read_file_interrupt, .open = ath9k_debugfs_open, .owner = THIS_MODULE, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const char *channel_type_str (enum nl80211_channel_type t)
@@ -480,7 +480,7 @@ static const struct file_operations fops_wiphy = { .read = read_file_wiphy, .open = ath9k_debugfs_open, .owner = THIS_MODULE, - .llseek = default_llseek, + .llseek = generic_file_llseek, };#define PR_QNUM (_n) sc->tx.txq_map[_n]->axq_qnum
@@ -819,21 +819,21 @@ static const struct file_operations fops_xmit = { .read = read_file_xmit, .open = ath9k_debugfs_open, .owner = THIS_MODULE, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct file_operations fops_stations = { .read = read_file_stations, .open = ath9k_debugfs_open, .owner =THIS_MODULE , - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct file_operations fops_misc = { .read = read_file_misc, .open = ath9k_debugfs_open, .owner =THIS_MODULE , - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static ssize_t read_file_recv(struct file *file, char __user *user_buf,
@@ -956,7 +956,7 @@ static const struct file_operations fops_recv = { .read = read_file_recv, .open = ath9k_debugfs_open, .owner = THIS_MODULE, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static ssize_t read_file_regidx(struct file *file, char __user *user_buf,
@@ -995,7 +995,7 @@ static const struct file_operations fops_regidx = { .write = write_file_regidx, .open = ath9k_debugfs_open, .owner = THIS_MODULE, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static ssize_t read_file_regval(struct file *file, char __user *user_buf,
@@ -1038,7 +1038,7 @@ static const struct file_operations fops_regval = { .write = write_file_regval, .open = ath9k_debugfs_open, .owner = THIS_MODULE, - .llseek = default_llseek, + .llseek = generic_file_llseek, };#define REGDUMP_LINE_SIZE 20
@@ -1074,7 +1074,7 @@ static const struct file_operations fops_regdump = { .read = ath9k_debugfs_read_buf, .release = ath9k_debugfs_release_buf, .owner = THIS_MODULE, - .llseek = default_llseek,/* read accesses f_pos */ + .llseek = generic_file_llseek,/* read accesses f_pos */ };int ath9k_init_debug (struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/htc_drv_main.c +3 -3
@@ -772,7 +772,7 @@ static const struct file_operations fops_tgt_stats = { .read = read_file_tgt_stats, .open = ath9k_debugfs_open, .owner = THIS_MODULE, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static ssize_t read_file_xmit(struct file *file, char __user *user_buf,
@@ -821,7 +821,7 @@ static const struct file_operations fops_xmit = { .read = read_file_xmit, .open = ath9k_debugfs_open, .owner = THIS_MODULE, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static ssize_t read_file_recv(struct file *file, char __user *user_buf,
@@ -851,7 +851,7 @@ static const struct file_operations fops_recv = { .read = read_file_recv, .open = ath9k_debugfs_open, .owner = THIS_MODULE, - .llseek = default_llseek, + .llseek = generic_file_llseek, };int ath9k_htc_init_debug (struct ath_hw *ah)
drivers/net/wireless/iwlegacy/iwl-3945-rs.c +1 -1
@@ -873,7 +873,7 @@ static ssize_t iwl3945_sta_dbgfs_stats_table_read(struct file *file,static const struct file_operations rs_sta_dbgfs_stats_table_ops = { .read = iwl3945_sta_dbgfs_stats_table_read, .open = iwl3945_open_file_generic, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static void iwl3945_add_debugfs(void *priv, void *priv_sta,
drivers/net/wireless/iwlegacy/iwl-4965-rs.c +3 -3
@@ -2725,7 +2725,7 @@ static const struct file_operations rs_sta_dbgfs_scale_table_ops = { .write = iwl4965_rs_sta_dbgfs_scale_table_write, .read = iwl4965_rs_sta_dbgfs_scale_table_read, .open = iwl4965_open_file_generic, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static ssize_t iwl4965_rs_sta_dbgfs_stats_table_read (struct file *file,char __user *user_buf,size_t count,loff_t *ppos)
@@ -2768,7 +2768,7 @@ static ssize_t iwl4965_rs_sta_dbgfs_stats_table_read(struct file *file,static const struct file_operations rs_sta_dbgfs_stats_table_ops = { .read = iwl4965_rs_sta_dbgfs_stats_table_read, .open = iwl4965_open_file_generic, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static ssize_t iwl4965_rs_sta_dbgfs_rate_scale_data_read(struct file *file,
@@ -2800,7 +2800,7 @@ static ssize_t iwl4965_rs_sta_dbgfs_rate_scale_data_read(struct file *file,static const struct file_operations rs_sta_dbgfs_rate_scale_data_ops = { .read = iwl4965_rs_sta_dbgfs_rate_scale_data_read, .open = iwl4965_open_file_generic, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static void iwl4965_rs_add_debugfs(void *priv, void *priv_sta,
drivers/net/wireless/iwlwifi/iwl-agn-rs.c +3 -3
@@ -3206,7 +3206,7 @@ static const struct file_operations rs_sta_dbgfs_scale_table_ops = { .write = rs_sta_dbgfs_scale_table_write, .read = rs_sta_dbgfs_scale_table_read, .open = open_file_generic, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static ssize_t rs_sta_dbgfs_stats_table_read (struct file *file,char __user *user_buf,size_t count,loff_t *ppos)
@@ -3249,7 +3249,7 @@ static ssize_t rs_sta_dbgfs_stats_table_read(struct file *file,static const struct file_operations rs_sta_dbgfs_stats_table_ops = { .read = rs_sta_dbgfs_stats_table_read, .open = open_file_generic, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static ssize_t rs_sta_dbgfs_rate_scale_data_read(struct file *file,
@@ -3281,7 +3281,7 @@ static ssize_t rs_sta_dbgfs_rate_scale_data_read(struct file *file,static const struct file_operations rs_sta_dbgfs_rate_scale_data_ops = { .read = rs_sta_dbgfs_rate_scale_data_read, .open = open_file_generic, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static void rs_add_debugfs(void *priv, void *priv_sta,
drivers/net/wireless/iwmc3200wifi/debugfs.c +4 -4
@@ -402,28 +402,28 @@ static const struct file_operations iwm_debugfs_txq_fops = { .owner = THIS_MODULE, .open = iwm_generic_open, .read = iwm_debugfs_txq_read, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct file_operations iwm_debugfs_tx_credit_fops = { .owner =THIS_MODULE , .open = iwm_generic_open, .read = iwm_debugfs_tx_credit_read, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct file_operations iwm_debugfs_rx_ticket_fops = { .owner =THIS_MODULE , .open = iwm_generic_open, .read = iwm_debugfs_rx_ticket_read, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct file_operations iwm_debugfs_fw_err_fops = { .owner =THIS_MODULE , .open = iwm_generic_open, .read = iwm_debugfs_fw_err_read, - .llseek = default_llseek, + .llseek = generic_file_llseek, };void iwm_debugfs_init (struct iwm_priv *iwm)
drivers/net/wireless/iwmc3200wifi/sdio.c +1 -1
@@ -364,7 +364,7 @@ static const struct file_operations iwm_debugfs_sdio_fops = { .owner = THIS_MODULE, .open = iwm_debugfs_sdio_open, .read = iwm_debugfs_sdio_read, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static void if_sdio_debugfs_init (struct iwm_priv *iwm,struct dentry *parent_dir)
drivers/net/wireless/libertas/debugfs.c +1 -1
@@ -962,7 +962,7 @@ static const struct file_operations lbs_debug_fops = { .open = open_file_generic, .write = lbs_debugfs_write, .read = lbs_debugfs_read, - .llseek = default_llseek, + .llseek = generic_file_llseek, };/**
drivers/net/wireless/rt2x00/rt2x00debug.c +4 -4
@@ -315,7 +315,7 @@ static const struct file_operations rt2x00debug_fop_queue_dump = { .poll = rt2x00debug_poll_queue_dump, .open = rt2x00debug_open_queue_dump, .release = rt2x00debug_release_queue_dump, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static ssize_t rt2x00debug_read_queue_stats(struct file *file,
@@ -373,7 +373,7 @@ static const struct file_operations rt2x00debug_fop_queue_stats = { .read = rt2x00debug_read_queue_stats, .open = rt2x00debug_file_open, .release = rt2x00debug_file_release, - .llseek = default_llseek, + .llseek = generic_file_llseek, };#ifdef CONFIG_RT2X00_LIB_CRYPTO
@@ -426,7 +426,7 @@ static const struct file_operations rt2x00debug_fop_crypto_stats = { .read = rt2x00debug_read_crypto_stats, .open = rt2x00debug_file_open, .release = rt2x00debug_file_release, - .llseek = default_llseek, + .llseek = generic_file_llseek, };#endif
@@ -550,7 +550,7 @@ static const struct file_operations rt2x00debug_fop_dev_flags = { .read = rt2x00debug_read_dev_flags, .open = rt2x00debug_file_open, .release = rt2x00debug_file_release, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static struct dentry *rt2x00debug_create_file_driver(const char *name,
drivers/net/wireless/wl12xx/debugfs.c +2 -2
@@ -234,7 +234,7 @@ static ssize_t tx_queue_len_read(struct file *file, char __user *userbuf,static const struct file_operations tx_queue_len_ops = { .read = tx_queue_len_read, .open = wl1271_open_file_generic, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static ssize_t gpio_power_read(struct file *file, char __user *user_buf,
@@ -288,7 +288,7 @@ static const struct file_operations gpio_power_ops = { .read = gpio_power_read, .write = gpio_power_write, .open = wl1271_open_file_generic, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static int wl1271_debugfs_add_files(struct wl1271 *wl,
drivers/oprofile/oprofile_files.c +5 -5
@@ -59,7 +59,7 @@ static ssize_t timeout_write(struct file *file, char const __user *buf,static const struct file_operations timeout_fops = { .read = timeout_read, .write = timeout_write, - .llseek = default_llseek, + .llseek = generic_file_llseek, };#endif
@@ -98,7 +98,7 @@ static ssize_t depth_write(struct file *file, char const __user *buf, size_t coustatic const struct file_operations depth_fops = { .read = depth_read, .write = depth_write, - .llseek = default_llseek, + .llseek = generic_file_llseek, };
@@ -110,7 +110,7 @@ static ssize_t pointer_size_read(struct file *file, char __user *buf, size_t coustatic const struct file_operations pointer_size_fops = { .read = pointer_size_read, - .llseek = default_llseek, + .llseek = generic_file_llseek, };
@@ -122,7 +122,7 @@ static ssize_t cpu_type_read(struct file *file, char __user *buf, size_t count,static const struct file_operations cpu_type_fops = { .read = cpu_type_read, - .llseek = default_llseek, + .llseek = generic_file_llseek, };
@@ -158,7 +158,7 @@ static ssize_t enable_write(struct file *file, char const __user *buf, size_t costatic const struct file_operations enable_fops = { .read = enable_read, .write = enable_write, - .llseek = default_llseek, + .llseek = generic_file_llseek, };
drivers/oprofile/oprofilefs.c +3 -3
@@ -122,14 +122,14 @@ static const struct file_operations ulong_fops = { .read = ulong_read_file, .write = ulong_write_file, .open = default_open, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct file_operations ulong_ro_fops = { .read = ulong_read_file, .open = default_open, - .llseek = default_llseek, + .llseek = generic_file_llseek, };
@@ -181,7 +181,7 @@ static ssize_t atomic_read_file(struct file *file, char __user *buf, size_t counstatic const struct file_operations atomic_ro_fops = { .read = atomic_read_file, .open = default_open, - .llseek = default_llseek, + .llseek = generic_file_llseek, };
drivers/spi/dw_spi.c +1 -1
@@ -131,7 +131,7 @@ static const struct file_operations mrst_spi_regs_ops = { .owner = THIS_MODULE, .open = spi_show_regs_open, .read = spi_show_regs, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static int mrst_spi_debugfs_init (struct dw_spi *dws)
drivers/staging/panel/panel.c +1 -1
@@ -1631,7 +1631,7 @@ static const struct file_operations keypad_fops = { .read = keypad_read, /* read */ .open = keypad_open, /* open */ .release = keypad_release, /* close */ - .llseek = default_llseek, + .llseek = generic_file_llseek, };static struct miscdevice keypad_dev = {
drivers/staging/tty/istallion.c +1 -1
@@ -703,7 +703,7 @@ static const struct file_operations stli_fsiomem = { .read = stli_memread, .write = stli_memwrite, .unlocked_ioctl = stli_memioctl, - .llseek = default_llseek, + .llseek = generic_file_llseek, };/*****************************************************************************/
drivers/telephony/ixj.c +1 -1
@@ -6678,7 +6678,7 @@ static const struct file_operations ixj_fops = .unlocked_ioctl = ixj_ioctl, .release = ixj_release, .fasync = ixj_fasync, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static int ixj_linetest (IXJ *j)
drivers/tty/serial/mfd.c +2 -2
@@ -232,14 +232,14 @@ static const struct file_operations port_regs_ops = { .owner = THIS_MODULE, .open = hsu_show_regs_open, .read = port_show_regs, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct file_operations dma_regs_ops = { .owner =THIS_MODULE , .open = hsu_show_regs_open, .read = dma_show_regs, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static int hsu_debugfs_init (struct hsu_port *hsu)
drivers/usb/class/usbtmc.c +1 -1
@@ -987,7 +987,7 @@ static const struct file_operations fops = { .open = usbtmc_open, .release = usbtmc_release, .unlocked_ioctl = usbtmc_ioctl, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static struct usb_class_driver usbtmc_class = {
drivers/usb/host/ehci-dbg.c +3 -3
@@ -367,21 +367,21 @@ static const struct file_operations debug_async_fops = { .open = debug_async_open, .read = debug_output, .release = debug_close, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct file_operations debug_periodic_fops = { .owner =THIS_MODULE , .open = debug_periodic_open, .read = debug_output, .release = debug_close, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct file_operations debug_registers_fops = { .owner =THIS_MODULE , .open = debug_registers_open, .read = debug_output, .release = debug_close, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct file_operations debug_lpm_fops = { .owner =THIS_MODULE ,
drivers/usb/host/ohci-dbg.c +3 -3
@@ -413,21 +413,21 @@ static const struct file_operations debug_async_fops = { .open = debug_async_open, .read = debug_output, .release = debug_close, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct file_operations debug_periodic_fops = { .owner =THIS_MODULE , .open = debug_periodic_open, .read = debug_output, .release = debug_close, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct file_operations debug_registers_fops = { .owner =THIS_MODULE , .open = debug_registers_open, .read = debug_output, .release = debug_close, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static struct dentry *ohci_debug_root;
drivers/usb/misc/idmouse.c +1 -1
@@ -105,7 +105,7 @@ static const struct file_operations idmouse_fops = { .read = idmouse_read, .open = idmouse_open, .release = idmouse_release, - .llseek = default_llseek, + .llseek = generic_file_llseek, };/* class driver information */
drivers/usb/misc/yurex.c +1 -1
@@ -536,7 +536,7 @@ static const struct file_operations yurex_fops = { .open = yurex_open, .release = yurex_release, .fasync = yurex_fasync, - .llseek = default_llseek, + .llseek = generic_file_llseek, };
drivers/video/fbmem.c +1 -1
@@ -1421,7 +1421,7 @@ static const struct file_operations fb_fops = {#ifdef CONFIG_FB_DEFERRED_IO .fsync = fb_deferred_io_fsync, #endif - .llseek = default_llseek, + .llseek = generic_file_llseek, };struct class *fb_class;
drivers/video/mbx/mbxdebugfs.c +6 -6
@@ -175,42 +175,42 @@ static const struct file_operations sysconf_fops = { .read = sysconf_read_file, .write = write_file_dummy, .open = open_file_generic, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct file_operations clock_fops = { .read = clock_read_file, .write = write_file_dummy, .open = open_file_generic, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct file_operations display_fops = { .read = display_read_file, .write = write_file_dummy, .open = open_file_generic, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct file_operations gsctl_fops = { .read = gsctl_read_file, .write = write_file_dummy, .open = open_file_generic, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct file_operations sdram_fops = { .read = sdram_read_file, .write = write_file_dummy, .open = open_file_generic, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct file_operations misc_fops = { .read = misc_read_file, .write = write_file_dummy, .open = open_file_generic, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static void __devinit mbxfb_debugfs_init (struct fb_info *fbi)
drivers/xen/xenfs/super.c +1 -1
@@ -75,7 +75,7 @@ static ssize_t capabilities_read(struct file *file, char __user *buf,static const struct file_operations capabilities_file_ops = { .read = capabilities_read, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static int xenfs_fill_super (struct super_block *sb,void *data,int silent)
fs/binfmt_misc.c +2 -2
@@ -577,7 +577,7 @@ static ssize_t bm_entry_write(struct file *file, const char __user *buffer,static const struct file_operations bm_entry_operations = { .read = bm_entry_read, .write = bm_entry_write, - .llseek = default_llseek, + .llseek = generic_file_llseek, };/* /register */
@@ -683,7 +683,7 @@ static ssize_t bm_status_write(struct file * file, const char __user * buffer,static const struct file_operations bm_status_operations = { .read = bm_status_read, .write = bm_status_write, - .llseek = default_llseek, + .llseek = generic_file_llseek, };/* Superblock handling */
fs/debugfs/file.c +2 -2
@@ -455,7 +455,7 @@ static const struct file_operations fops_bool = { .read = read_file_bool, .write = write_file_bool, .open = default_open, - .llseek = default_llseek, + .llseek = generic_file_llseek, };/**
@@ -500,7 +500,7 @@ static ssize_t read_file_blob(struct file *file, char __user *user_buf,static const struct file_operations fops_blob = { .read = read_file_blob, .open = default_open, - .llseek = default_llseek, + .llseek = generic_file_llseek, };/**
fs/dlm/debug_fs.c +1 -1
@@ -644,7 +644,7 @@ static const struct file_operations waiters_fops = { .owner = THIS_MODULE, .open = waiters_open, .read = waiters_read, - .llseek = default_llseek, + .llseek = generic_file_llseek, };void dlm_delete_debug_file (struct dlm_ls *ls)
fs/ecryptfs/file.c +1 -1
@@ -335,7 +335,7 @@ const struct file_operations ecryptfs_dir_fops = { .fsync = ecryptfs_fsync, .fasync = ecryptfs_fasync, .splice_read = generic_file_splice_read, - .llseek = default_llseek, + .llseek = generic_file_llseek, };const struct file_operations ecryptfs_main_fops = {
fs/gfs2/file.c +2 -2
@@ -1045,7 +1045,7 @@ const struct file_operations gfs2_dir_fops = { .fsync = gfs2_fsync, .lock = gfs2_lock, .flock = gfs2_flock, - .llseek = default_llseek, + .llseek = generic_file_llseek, };#endif /* CONFIG_GFS2_FS_LOCKING_DLM */
@@ -1073,6 +1073,6 @@ const struct file_operations gfs2_dir_fops_nolock = { .open = gfs2_open, .release = gfs2_close, .fsync = gfs2_fsync, - .llseek = default_llseek, + .llseek = generic_file_llseek, };
fs/hppfs/hppfs.c +2 -2
@@ -538,7 +538,7 @@ static loff_t hppfs_llseek(struct file *file, loff_t off, int where)return ret; } -return default_llseek (file, off, where); +return generic_file_llseek (file, off, where); }static const struct file_operations hppfs_file_fops = {
@@ -598,7 +598,7 @@ static const struct file_operations hppfs_dir_fops = { .readdir = hppfs_readdir, .open = hppfs_dir_open, .fsync = hppfs_fsync, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static int hppfs_statfs (struct dentry *dentry,struct kstatfs *sf)
fs/hugetlbfs/inode.c +1 -1
@@ -696,7 +696,7 @@ const struct file_operations hugetlbfs_file_operations = { .mmap = hugetlbfs_file_mmap, .fsync = noop_fsync, .get_unmapped_area = hugetlb_get_unmapped_area, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct inode_operations hugetlbfs_dir_inode_operations = {
fs/logfs/dir.c +1 -1
@@ -829,5 +829,5 @@ const struct file_operations logfs_dir_fops = { .unlocked_ioctl = logfs_ioctl, .readdir = logfs_readdir, .read = generic_read_dir, - .llseek = default_llseek, + .llseek = generic_file_llseek, };
fs/nfsd/nfsctl.c +1 -1
@@ -155,7 +155,7 @@ static const struct file_operations transaction_ops = { .write = nfsctl_transaction_write, .read = nfsctl_transaction_read, .release = simple_transaction_release, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static int exports_open (struct inode *inode,struct file *file)
fs/ocfs2/dlmfs/dlmfs.c +1 -1
@@ -621,7 +621,7 @@ static const struct file_operations dlmfs_file_operations = { .poll = dlmfs_file_poll, .read = dlmfs_file_read, .write = dlmfs_file_write, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct inode_operations dlmfs_dir_inode_operations = {
fs/ocfs2/stack_user.c +1 -1
@@ -625,7 +625,7 @@ static const struct file_operations ocfs2_control_fops = { .read = ocfs2_control_read, .write = ocfs2_control_write, .owner = THIS_MODULE, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static struct miscdevice ocfs2_control_device = {
fs/proc/base.c +7 -7
@@ -1241,7 +1241,7 @@ out:static const struct file_operations proc_oom_score_adj_operations = { .read = oom_score_adj_read, .write = oom_score_adj_write, - .llseek = default_llseek, + .llseek = generic_file_llseek, };#ifdef CONFIG_AUDITSYSCALL
@@ -2210,7 +2210,7 @@ static const struct file_operations proc_fdinfo_file_operations = {static const struct file_operations proc_fd_operations = { .read = generic_read_dir, .readdir = proc_readfd, - .llseek = default_llseek, + .llseek = generic_file_llseek, };/*
@@ -2281,7 +2281,7 @@ static int proc_readfdinfo(struct file *filp, void *dirent, filldir_t filldir)static const struct file_operations proc_fdinfo_operations = { .read = generic_read_dir, .readdir = proc_readfdinfo, - .llseek = default_llseek, + .llseek = generic_file_llseek, };/*
@@ -2513,7 +2513,7 @@ static int proc_attr_dir_readdir(struct file * filp,static const struct file_operations proc_attr_dir_operations = { .read = generic_read_dir, .readdir = proc_attr_dir_readdir, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static struct dentry *proc_attr_dir_lookup(struct inode *dir,
@@ -2906,7 +2906,7 @@ static int proc_tgid_base_readdir(struct file * filp,static const struct file_operations proc_tgid_base_operations = { .read = generic_read_dir, .readdir = proc_tgid_base_readdir, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static struct dentry *proc_tgid_base_lookup (struct inode *dir,struct dentry *dentry,struct nameidata *nd){
@@ -3244,7 +3244,7 @@ static struct dentry *proc_tid_base_lookup(struct inode *dir, struct dentry *denstatic const struct file_operations proc_tid_base_operations = { .read = generic_read_dir, .readdir = proc_tid_base_readdir, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct inode_operations proc_tid_base_inode_operations = {
@@ -3481,5 +3481,5 @@ static const struct inode_operations proc_task_inode_operations = {static const struct file_operations proc_task_operations = { .read = generic_read_dir, .readdir = proc_task_readdir, - .llseek = default_llseek, + .llseek = generic_file_llseek, };
fs/proc/inode.c +1 -1
@@ -145,7 +145,7 @@ static loff_t proc_reg_llseek(struct file *file, loff_t offset, int whence)spin_unlock (&pde->pde_unload_lock);if (!llseek) - llseek = default_llseek; + llseek = generic_file_llseek; rv =llseek (file, offset, whence);pde_users_dec (pde);
fs/proc/kcore.c +1 -1
@@ -558,7 +558,7 @@ static int open_kcore(struct inode *inode, struct file *filp)static const struct file_operations proc_kcore_operations = { .read = read_kcore, .open = open_kcore, - .llseek = default_llseek, + .llseek = generic_file_llseek, };#ifdef CONFIG_MEMORY_HOTPLUG
fs/proc/proc_sysctl.c +1 -1
@@ -369,7 +369,7 @@ static int proc_sys_getattr(struct vfsmount *mnt, struct dentry *dentry, structstatic const struct file_operations proc_sys_file_operations = { .read = proc_sys_read, .write = proc_sys_write, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct file_operations proc_sys_dir_file_operations = {
fs/proc/root.c +1 -1
@@ -168,7 +168,7 @@ static int proc_root_readdir(struct file * filp,static const struct file_operations proc_root_operations = { .read = generic_read_dir, .readdir = proc_root_readdir, - .llseek = default_llseek, + .llseek = generic_file_llseek, };/*
fs/proc/vmcore.c +1 -1
@@ -163,7 +163,7 @@ static ssize_t read_vmcore(struct file *file, char __user *buffer,static const struct file_operations proc_vmcore_operations = { .read = read_vmcore, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static struct vmcore *__init get_new_element (void )
fs/pstore/inode.c +1 -1
@@ -62,7 +62,7 @@ static ssize_t pstore_file_read(struct file *file, char __user *userbuf,static const struct file_operations pstore_file_operations = { .open = pstore_file_open, .read = pstore_file_read, - .llseek = default_llseek, + .llseek = generic_file_llseek, };/*
fs/read_write.c +0 -30
@@ -148,36 +148,6 @@ loff_t no_llseek(struct file *file, loff_t offset, int origin) }EXPORT_SYMBOL (no_llseek); -loff_t default_llseek (struct file *file,loff_t offset,int origin) -{ -loff_t retval; - -mutex_lock (&file->f_dentry->d_inode->i_mutex); -switch (origin) { -case SEEK_END : - offset +=i_size_read (file->f_path.dentry->d_inode); -break ; -case SEEK_CUR : -if (offset ==0 ) { - retval = file->f_pos; - goto out; - } - offset += file->f_pos; - } - retval = -EINVAL ; -if (offset >=0 ||unsigned_offsets (file)) { -if (offset != file->f_pos) { - file->f_pos = offset; - file->f_version =0 ; - } - retval = offset; - } -out: -mutex_unlock (&file->f_dentry->d_inode->i_mutex); -return retval; -} -EXPORT_SYMBOL (default_llseek); -loff_t vfs_llseek (struct file *file,loff_t offset,int origin) {loff_t (*fn)(struct file *,loff_t ,int );
fs/romfs/super.c +1 -1
@@ -282,7 +282,7 @@ error:static const struct file_operations romfs_dir_operations = { .read = generic_read_dir, .readdir = romfs_readdir, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct inode_operations romfs_dir_inode_operations = {
fs/squashfs/dir.c +1 -1
@@ -240,5 +240,5 @@ failed_read:const struct file_operations squashfs_dir_ops = { .read = generic_read_dir, .readdir = squashfs_readdir, - .llseek = default_llseek, + .llseek = generic_file_llseek, };
fs/ubifs/debug.c +1 -1
@@ -2814,7 +2814,7 @@ static const struct file_operations dfs_fops = { .open = open_debugfs_file, .write = write_debugfs_file, .owner = THIS_MODULE, - .llseek = default_llseek, + .llseek = generic_file_llseek, };/**
include/linux/fs.h +0 -2
@@ -2237,8 +2237,6 @@ extern ino_t find_inode_number(struct dentry *, struct qstr *);#include <linux/err.h> /* needed for stackable file system support */ -extern loff_t default_llseek (struct file *file,loff_t offset,int origin); -extern loff_t vfs_llseek (struct file *file,loff_t offset,int origin);extern int inode_init_always (struct super_block *,struct inode *);
ipc/mqueue.c +1 -1
@@ -1227,7 +1227,7 @@ static const struct file_operations mqueue_file_operations = { .flush = mqueue_flush_file, .poll = mqueue_poll_file, .read = mqueue_read_file, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct super_operations mqueue_super_ops = {
kernel/configs.c +1 -1
@@ -66,7 +66,7 @@ ikconfig_read_current(struct file *file, char __user *buf,static const struct file_operations ikconfig_file_ops = { .owner =THIS_MODULE , .read = ikconfig_read_current, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static int __init ikconfig_init (void )
kernel/kprobes.c +1 -1
@@ -2210,7 +2210,7 @@ static ssize_t write_enabled_file_bool(struct file *file,static const struct file_operations fops_kp = { .read = read_enabled_file_bool, .write = write_enabled_file_bool, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static int __kprobes debugfs_kprobe_init (void )
kernel/profile.c +1 -1
@@ -555,7 +555,7 @@ static ssize_t write_profile(struct file *file, const char __user *buf,static const struct file_operations proc_profile_operations = { .read = read_profile, .write = write_profile, - .llseek = default_llseek, + .llseek = generic_file_llseek, };#ifdef CONFIG_SMP
kernel/trace/blktrace.c +1 -1
@@ -330,7 +330,7 @@ static const struct file_operations blk_dropped_fops = { .owner = THIS_MODULE, .open = blk_dropped_open, .read = blk_dropped_read, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static int blk_msg_open (struct inode *inode,struct file *filp)
kernel/trace/ftrace.c +1 -1
@@ -800,7 +800,7 @@ static const struct file_operations ftrace_profile_fops = { .open = tracing_open_generic, .read = ftrace_profile_read, .write = ftrace_profile_write, - .llseek = default_llseek, + .llseek = generic_file_llseek, };/* used to initialize the real stat files */
kernel/trace/ring_buffer.c +1 -1
@@ -4008,7 +4008,7 @@ static const struct file_operations rb_simple_fops = { .open = tracing_open_generic, .read = rb_simple_read, .write = rb_simple_write, - .llseek = default_llseek, + .llseek = generic_file_llseek, };
kernel/trace/trace_events.c +6 -6
@@ -938,7 +938,7 @@ static const struct file_operations ftrace_enable_fops = { .open = tracing_open_generic, .read = event_enable_read, .write = event_enable_write, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct file_operations ftrace_event_format_fops = {
@@ -951,34 +951,34 @@ static const struct file_operations ftrace_event_format_fops = {static const struct file_operations ftrace_event_id_fops = { .open = tracing_open_generic, .read = event_id_read, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct file_operations ftrace_event_filter_fops = { .open = tracing_open_generic, .read = event_filter_read, .write = event_filter_write, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct file_operations ftrace_subsystem_filter_fops = { .open = tracing_open_generic, .read = subsystem_filter_read, .write = subsystem_filter_write, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct file_operations ftrace_system_enable_fops = { .open = tracing_open_generic, .read = system_enable_read, .write = system_enable_write, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static const struct file_operations ftrace_show_header_fops = { .open = tracing_open_generic, .read = show_header, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static struct dentry *event_trace_events_dir (void )
kernel/trace/trace_stack.c +1 -1
@@ -195,7 +195,7 @@ static const struct file_operations stack_max_size_fops = { .open = tracing_open_generic, .read = stack_max_size_read, .write = stack_max_size_write, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static void *
lib/dma-debug.c +1 -1
@@ -590,7 +590,7 @@ out_unlock:static const struct file_operations filter_fops = { .read = filter_read, .write = filter_write, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static int dma_debug_fs_init (void )
net/mac80211/debugfs.c +6 -6
@@ -121,7 +121,7 @@ static const struct file_operations tsf_ops = { .read = tsf_read, .write = tsf_write, .open = mac80211_open_file_generic, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static ssize_t reset_write(struct file *file, const char __user *user_buf,
@@ -174,7 +174,7 @@ static const struct file_operations noack_ops = { .read = noack_read, .write = noack_write, .open = mac80211_open_file_generic, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static ssize_t uapsd_queues_read(struct file *file, char __user *user_buf,
@@ -217,7 +217,7 @@ static const struct file_operations uapsd_queues_ops = { .read = uapsd_queues_read, .write = uapsd_queues_write, .open = mac80211_open_file_generic, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static ssize_t uapsd_max_sp_len_read(struct file *file, char __user *user_buf,
@@ -261,7 +261,7 @@ static const struct file_operations uapsd_max_sp_len_ops = { .read = uapsd_max_sp_len_read, .write = uapsd_max_sp_len_write, .open = mac80211_open_file_generic, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static ssize_t channel_type_read(struct file *file, char __user *user_buf,
@@ -294,7 +294,7 @@ static ssize_t channel_type_read(struct file *file, char __user *user_buf,static const struct file_operations channel_type_ops = { .read = channel_type_read, .open = mac80211_open_file_generic, - .llseek = default_llseek, + .llseek = generic_file_llseek, }; static ssize_t queues_read(struct file *file, char __user *user_buf,
@@ -318,7 +318,7 @@ static ssize_t queues_read(struct file *file, char __user *user_buf,static const struct file_operations queues_ops = { .read = queues_read, .open = mac80211_open_file_generic, - .llseek = default_llseek, + .llseek = generic_file_llseek, };/* statistics stuff */
net/mac80211/rate.c +1 -1
@@ -145,7 +145,7 @@ static ssize_t rcname_read(struct file *file, char __user *userbuf,static const struct file_operations rcname_ops = { .read = rcname_read, .open = mac80211_open_file_generic, - .llseek = default_llseek, + .llseek = generic_file_llseek, };#endif
net/mac80211/rc80211_minstrel_debugfs.c +1 -1
@@ -122,7 +122,7 @@ static const struct file_operations minstrel_stat_fops = { .open = minstrel_stats_open, .read = minstrel_stats_read, .release = minstrel_stats_release, - .llseek = default_llseek, + .llseek = generic_file_llseek, };void
net/wireless/debugfs.c +1 -1
@@ -103,7 +103,7 @@ static ssize_t ht40allow_map_read(struct file *file,static const struct file_operations ht40allow_map_ops = { .read = ht40allow_map_read, .open = cfg80211_open_file_generic, - .llseek = default_llseek, + .llseek = generic_file_llseek, };#define DEBUGFS_ADD (name) \
security/apparmor/apparmorfs.c +3 -3
@@ -89,7 +89,7 @@ static ssize_t profile_load(struct file *f, const char __user *buf, size_t size,static const struct file_operations aa_fs_profile_load = { .write = profile_load, - .llseek = default_llseek, + .llseek = generic_file_llseek, };/* .replace file hook fn to load and/or replace policy */
@@ -111,7 +111,7 @@ static ssize_t profile_replace(struct file *f, const char __user *buf,static const struct file_operations aa_fs_profile_replace = { .write = profile_replace, - .llseek = default_llseek, + .llseek = generic_file_llseek, };/* .remove file hook fn to remove loaded policy */
@@ -139,7 +139,7 @@ static ssize_t profile_remove(struct file *f, const char __user *buf,static const struct file_operations aa_fs_profile_remove = { .write = profile_remove, - .llseek = default_llseek, + .llseek = generic_file_llseek, };/** Base file system setup **/
security/smack/smackfs.c +5 -5
@@ -1026,7 +1026,7 @@ static ssize_t smk_write_doi(struct file *file, const char __user *buf,static const struct file_operations smk_doi_ops = { .read = smk_read_doi, .write = smk_write_doi, - .llseek = default_llseek, + .llseek = generic_file_llseek, };/**
@@ -1090,7 +1090,7 @@ static ssize_t smk_write_direct(struct file *file, const char __user *buf,static const struct file_operations smk_direct_ops = { .read = smk_read_direct, .write = smk_write_direct, - .llseek = default_llseek, + .llseek = generic_file_llseek, };/**
@@ -1172,7 +1172,7 @@ static ssize_t smk_write_ambient(struct file *file, const char __user *buf,static const struct file_operations smk_ambient_ops = { .read = smk_read_ambient, .write = smk_write_ambient, - .llseek = default_llseek, + .llseek = generic_file_llseek, };/**
@@ -1252,7 +1252,7 @@ static ssize_t smk_write_onlycap(struct file *file, const char __user *buf,static const struct file_operations smk_onlycap_ops = { .read = smk_read_onlycap, .write = smk_write_onlycap, - .llseek = default_llseek, + .llseek = generic_file_llseek, };/**
@@ -1317,7 +1317,7 @@ static ssize_t smk_write_logging(struct file *file, const char __user *buf,static const struct file_operations smk_logging_ops = { .read = smk_read_logging, .write = smk_write_logging, - .llseek = default_llseek, + .llseek = generic_file_llseek, };/*
sound/soc/soc-core.c +4 -4
@@ -275,7 +275,7 @@ static const struct file_operations codec_reg_fops = { .open = codec_reg_open_file, .read = codec_reg_read_file, .write = codec_reg_write_file, - .llseek = default_llseek, + .llseek = generic_file_llseek, };static void soc_init_codec_debugfs (struct snd_soc_codec *codec)
@@ -347,7 +347,7 @@ static ssize_t codec_list_read_file(struct file *file, char __user *user_buf,static const struct file_operations codec_list_fops = { .read = codec_list_read_file, - .llseek = default_llseek,/* read accesses f_pos */ + .llseek = generic_file_llseek,/* read accesses f_pos */ }; static ssize_t dai_list_read_file(struct file *file, char __user *user_buf,
@@ -379,7 +379,7 @@ static ssize_t dai_list_read_file(struct file *file, char __user *user_buf,static const struct file_operations dai_list_fops = { .read = dai_list_read_file, - .llseek = default_llseek,/* read accesses f_pos */ + .llseek = generic_file_llseek,/* read accesses f_pos */ }; static ssize_t platform_list_read_file(struct file *file,
@@ -413,7 +413,7 @@ static ssize_t platform_list_read_file(struct file *file,static const struct file_operations platform_list_fops = { .read = platform_list_read_file, - .llseek = default_llseek,/* read accesses f_pos */ + .llseek = generic_file_llseek,/* read accesses f_pos */ };static void soc_init_card_debugfs (struct snd_soc_card *card)
sound/soc/soc-dapm.c +1 -1
@@ -1301,7 +1301,7 @@ static ssize_t dapm_widget_power_read_file(struct file *file,static const struct file_operations dapm_widget_power_fops = { .open = dapm_widget_power_open_file, .read = dapm_widget_power_read_file, - .llseek = default_llseek, + .llseek = generic_file_llseek, };void snd_soc_dapm_debugfs_init (struct snd_soc_dapm_context *dapm)
Signature · 1 line
1.7.2.3
Arnd Bergmann
maintainerQuoted 7 lines · On Thursday 05 May 2011 16:27:57 Josef Bacik wrote:
Looking at this llseek stuff I noticed that
default_llseekis the exact same asgeneric_file_llseek, so killdefault_llseek. I patched this using spatch with just a simple@@
@@
Quoted 7 lines
-
default_llseek
+generic_file_llseekand then I manually removed the
default_llseekdefinitions. I've built and booted this and it works fine. Thanks,Signed-off-by Josef Bacik <[email protected]>
Good idea in principle, but you missed the fact that generic_file_llseek checks (offset > inode->i_sb->s_maxbytes), which default_llseek does not.
This makes a huge difference on file systems that do not initialize s_maxbytes, leaving it at zero. In particular, it doesn't work for character devices, IIRC they will use whatever s_maxbytes is set for the file system that stores the dentry and for debugfs and other virtual file systems, it is not set at all.
The proper fix should be to make sure all file systems set an appropriate s_maxbytes, and then add a special case for character devices to generic_file_llseek. The main reason I didn't do it last year was to avoid possible regressions when missing some other special cases, but please continue to push this once you are sure to have a correct version of the patch.
Arnd
Quoted 11 lines · Arnd Bergmann
Quoted 10 lines · On Thursday 05 May 2011 16:27:57 Josef Bacik wrote:
Looking at this llseek stuff I noticed that
default_llseekis the exact same asgeneric_file_llseek, so killdefault_llseek. I patched this using spatch with just a simple@@
@@-
default_llseek
+generic_file_llseek
Quoted 9 lines
Quoted 4 lines
and then I manually removed the
default_llseekdefinitions. I've built and booted this and it works fine. Thanks,Signed-off-by Josef Bacik<[email protected]>Good idea in principle, but you missed the fact that
generic_file_llseekchecks (offset>inode->i_sb->s_maxbytes), whichdefault_llseekdoes not.
Right, I didn't miss it, I probably should have said this in my commit, but anybody who gets a super gets it from sget, which does alloc_super, which automatically sets s_maxbytes to MAX_NON_LFS, which is ((1UL<<31) - 1), plenty of size.
Quoted 6 lines
This makes a huge difference on file systems that do not initialize
s_maxbytes, leaving it at zero. In particular, it doesn't work for character devices, IIRC they will use whatevers_maxbytesis set for the file system that stores the dentry and for debugfs and other virtual file systems, it is not set at all.
Quoted 7 lines
The proper fix should be to make sure all file systems set an appropriate
s_maxbytes, and then add a special case for character devices togeneric_file_llseek. The main reason I didn't do it last year was to avoid possible regressions when missing some other special cases, but please continue to push this once you are sure to have a correct version of the patch.
So every sb has s_maxbytes set to something, is this not acceptable for character devices? I guess some can let you seek well past this point so we should just do some if (S_ISCHR()) return or whatever? Thanks,
Josef
Quoted 3 lines · Josef Bacik
So every sb has
s_maxbytesset to something, is this not acceptable for character devices? I guess some can let you seek well past this point so we should just do some if (S_ISCHR()) return or whatever?
Probably for all special files just to be sure, although pipes/sockets/fifos aren't searchable, and block devices tend to get redirected to their own superblock.