Re: - loop-use-unlocked_ioctl.patch removed from -mm tree

From: Diego Woitasen
Date: Sat Nov 03 2007 - 11:32:25 EST


On Fri, Aug 24, 2007 at 08:43:16PM -0700, akpm@xxxxxxxxxxxxxxxxxxxx wrote:
>
> The patch titled
> loop: use unlocked_ioctl
> has been removed from the -mm tree. Its filename was
> loop-use-unlocked_ioctl.patch
>
> This patch was dropped because it isn't in the present -mm lineup
>
> ------------------------------------------------------
> Subject: loop: use unlocked_ioctl
> From: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
>
> The last lock_kernel() has disappeared from loop.c. Switch it over to using
> unlocked_ioctl.
>
> Cc: Diego Woitasen <diego@xxxxxxxxxxxxxxx>
> Cc: Christoph Hellwig <hch@xxxxxx>
> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> ---
>
> drivers/block/loop.c | 12 +++++++-----
> 1 files changed, 7 insertions(+), 5 deletions(-)
>
> diff -puN drivers/block/loop.c~loop-use-unlocked_ioctl drivers/block/loop.c
> --- a/drivers/block/loop.c~loop-use-unlocked_ioctl
> +++ a/drivers/block/loop.c
> @@ -1124,12 +1124,14 @@ loop_get_status64(struct loop_device *lo
> return err;
> }
>
> -static int lo_ioctl(struct inode * inode, struct file * file,
> - unsigned int cmd, unsigned long arg)
> +static long lo_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
> {
> - struct loop_device *lo = inode->i_bdev->bd_disk->private_data;
> + struct inode *inode;
> + struct loop_device *lo;
> int err;
>
> + inode = file->f_mapping->host;
> + lo = inode->i_bdev->bd_disk->private_data;
> mutex_lock(&lo->lo_ctl_mutex);
> switch (cmd) {
> case LOOP_SET_FD:
> @@ -1304,7 +1306,7 @@ static long lo_compat_ioctl(struct file
> arg = (unsigned long) compat_ptr(arg);
> case LOOP_SET_FD:
> case LOOP_CHANGE_FD:
> - err = lo_ioctl(inode, file, cmd, arg);
> + err = lo_ioctl(file, cmd, arg);
> break;
> default:
> err = -ENOIOCTLCMD;
> @@ -1340,7 +1342,7 @@ static struct block_device_operations lo
> .owner = THIS_MODULE,
> .open = lo_open,
> .release = lo_release,
> - .ioctl = lo_ioctl,
> + .unlocked_ioctl = lo_ioctl,
> #ifdef CONFIG_COMPAT
> .compat_ioctl = lo_compat_ioctl,
> #endif
> _
>
> Patches currently in -mm which might be from akpm@xxxxxxxxxxxxxxxxxxxx are
>
> origin.patch
> revert-ecryptfs-fix-lookup-error-for-special-files.patch
> process_zones-fix-recovery-code.patch
> remove-bdput-from-do_open-in-fs-block_devc.patch
> slow-down-printk-during-boot.patch
> slow-down-printk-during-boot-fix-2.patch
> git-acpi.patch
> acpi-add-reboot-mechanism.patch
> git-alsa.patch
> working-3d-dri-intel-agpko-resume-for-i815-chip.patch
> revert-gregkh-driver-block-device.patch
> revert-gregkh-driver-warn-when-statically-allocated-kobjects-are-used.patch
> sysfs-crash-debugging.patch
> git-dma.patch
> git-dma-makefile-fix.patch
> disable-ioat.patch
> git-dvb.patch
> git-dvb-fixup-2.patch
> infiniband-work-around-gcc-slub-problem.patch
> adbhid-produce-all-capslock-key-events.patch
> iforce-warning-fix.patch
> console-keyboard-events-and-accessibility-fix.patch
> console-keyboard-events-and-accessibility-fix-2.patch
> git-kvm.patch
> git-libata-all.patch
> ata-add-the-sw-ncq-support-to-sata_nv-for-mcp51-mcp55-mcp61patch.patch
> ide-arm-hack.patch
> git-mmc.patch
> git-mmc-fixup.patch
> gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct-vs-git-mmc.patch
> git-mtd.patch
> git-netdev-all.patch
> e1000e-build-fix.patch
> revert-8139too-clean-up-i-o-remapping.patch
> git-net.patch
> git-net-fixup.patch
> git-backlight.patch
> git-nfs-vs-git-unionfs.patch
> git-nfsd.patch
> revert-gregkh-pci-pci_bridge-device.patch
> pci-remove-irritating-try-pci=assign-busses-warning.patch
> fix-ide-legacy-mode-resources-fix.patch
> git-s390.patch
> git-scsi-misc.patch
> advansys-printk-fix.patch
> git-block-fixup.patch
> git-block-fix-headers_check.patch
> git-unionfs.patch
> git-unionfs-build-fix.patch
> git-unionfs-fix-2.patch
> fix-gregkh-usb-usb-sisusb2vga-convert-printk-to-dev_-macros.patch
> git-wireless.patch
> git-wireless-fixup.patch
> git-wireless-vs-gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct.patch
> git-wireless-printk-fixes.patch
> net-add-ath5k-wireless-driver-fix.patch
> x86_64-get-mp_bus_to_node-as-early-v3.patch
> ich-force-hpet-ich7-or-later-quirk-to-force-detect-enable-fix.patch
> ich-force-hpet-ich5-quirk-to-force-detect-enable-fix.patch
> git-xfs.patch
> git-kgdb-fixup.patch
> vmscan-give-referenced-active-and-unmapped-pages-a-second-trip-around-the-lru.patch
> sparsemem-record-when-a-section-has-a-valid-mem_map-fix.patch
> readahead-combine-file_ra_stateprev_index-prev_offset-into-prev_pos-fix.patch
> readahead-combine-file_ra_stateprev_index-prev_offset-into-prev_pos-fix-2.patch
> vm-dont-run-touch_buffer-during-buffercache-lookups.patch
> alloc_pages-permit-get_zeroed_pagegfp_atomic-from-interrupt-context.patch
> fs-introduce-write_begin-write_end-and-perform_write-aops.patch
> git-nfs-vs-nfs-convert-to-new-aops.patch
> memoryless-nodes-introduce-mask-of-nodes-with-memory-fix.patch
> categorize-gfp-flags-fix.patch
> bias-the-location-of-pages-freed-for-min_free_kbytes-in-the-same-max_order_nr_pages-blocks.patch
> maps2-move-the-page-walker-code-to-lib.patch
> maps2-add-proc-pid-pagemap-interface.patch
> maps2-make-proc-pid-smaps-optional-under-config_embeddedpatch-fix.patch
> slub-slab-validation-move-tracking-information-alloc-outside-of-melstuff.patch
> hugetlbfs-read-support-fix.patch
> mm-mempolicyc-cleanups-fix.patch
> security-convert-lsm-into-a-static-interface-fix.patch
> security-convert-lsm-into-a-static-interface-fix-2.patch
> security-convert-lsm-into-a-static-interface-fix-unionfs.patch
> security-convert-lsm-into-a-static-interface-vs-fix-null-pointer-dereference-in-__vm_enough_memory.patch
> file-capabilities-clear-caps-cleanup-fix.patch
> capabilityh-remove-include-of-currenth.patch
> serial-turn-serial-console-suspend-a-boot-rather-than-compile-time-option-update.patch
> cache-pipe-buf-page-address-for-non-highmem-arch.patch
> softlockup-add-a-proc-tuning-parameter-fix.patch
> force-erroneous-inclusions-of-compiler-h-files-to-be-errors-fix.patch
> driver-for-the-atmel-on-chip-ssc-on-at32ap-and-at91-fix.patch
> add-kernel-notifierc-fix.patch
> do_sys_poll-simplify-playing-with-on-stack-data-fix.patch
> pcmcia-compactflash-driver-for-pa-semi-electra-boards.patch
> add-in-sunos-41x-compatible-mode-for-ufs-fix.patch
> core_pattern-fix-up-a-few-miscellaneous-bugs-fix.patch
> printk-add-interfaces-for-external-access-to-the-log-buffer-fix.patch
> deprecate-aout-elf-interpreters-fix.patch
> ext2-ext3-ext4-add-block-bitmap-validation-fix.patch
> pie-executable-randomization-fix-2.patch
> binfmt_flat-warning-fixes.patch
> writeback-fix-time-ordering-of-the-per-superblock-dirty-inode-lists.patch
> writeback-fix-time-ordering-of-the-per-superblock-dirty-inode-lists-2.patch
> writeback-fix-time-ordering-of-the-per-superblock-dirty-inode-lists-3.patch
> writeback-fix-time-ordering-of-the-per-superblock-dirty-inode-lists-4.patch
> writeback-fix-comment-use-helper-function.patch
> writeback-fix-time-ordering-of-the-per-superblock-dirty-inode-lists-5.patch
> writeback-fix-time-ordering-of-the-per-superblock-dirty-inode-lists-6.patch
> writeback-fix-time-ordering-of-the-per-superblock-dirty-inode-lists-7.patch
> revert-faster-ext2_clear_inode.patch
> ecryptfs-printk-warning-fixes.patch
> tdfxfb-mtrr-support-fix.patch
> fbdev-fb_create_modedb-non-static-int-first-=-1-fix.patch
> intel-iommu-pci-generic-helper-function.patch
> intel-iommu-iova-allocation-and-management-routines.patch
> intel-iommu-intel-iommu-driver.patch
> intel-iommu-iommu-floppy-workaround.patch
> 64-bit-i_version-afs-fixes.patch
> revoke-wire-up-i386-system-calls.patch
> revoke-vs-git-block.patch
> task-containersv11-basic-task-container-framework-fix.patch
> add-containerstats-v3-fix.patch
> pid-namespaces-dynamic-kmem-cache-allocator-for-pid-namespaces-fix.patch
> pid-namespaces-define-is_global_init-and-is_container_init-fix.patch
> pid-namespaces-define-is_global_init-and-is_container_init-versus-x86_64-mm-i386-show-unhandled-signals-v3.patch
> fs-superc-use-list_for_each_entry-instead-of-list_for_each-fix.patch
> pid-namespaces-helpers-to-find-the-task-by-its-numerical-ids-fix.patch
> pid-namespaces-changes-to-show-virtual-ids-to-user-use-find_task_by_pid_ns-in-places-that-operate-with-virtual-fix.patch
> pid-namespaces-changes-to-show-virtual-ids-to-user-use-find_task_by_pid_ns-in-places-that-operate-with-virtual-fix-2.patch
> pid-namespaces-changes-to-show-virtual-ids-to-user-use-find_task_by_pid_ns-in-places-that-operate-with-virtual-fix-3.patch
> pid-namespaces-changes-to-show-virtual-ids-to-user-fix.patch
> reiser4.patch
> git-block-vs-reiser4.patch
> page-owner-tracking-leak-detector.patch
> profile-likely-unlikely-macros-fix.patch
> check_dirty_inode_list.patch
> w1-build-fix.patch

Hi,
I read the code and don't undertand what the use of
unlocked_ioctl() was removed. What's the problem of using it if
the loop driver doesn't need the BLK?

regards,
diegows

--

--------------
Diego Woitasen
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/