The patch titled slub-do-our-own-locking-via-slab_lock-and-slab_unlock-checkpatch-fixes has been removed from the -mm tree. Its filename was slub-do-our-own-locking-via-slab_lock-and-slab_unlock-checkpatch-fixes.patch This patch was dropped because it was folded into slub-do-our-own-locking-via-slab_lock-and-slab_unlock.patch The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ Subject: slub-do-our-own-locking-via-slab_lock-and-slab_unlock-checkpatch-fixes From: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> ERROR: do not use assignment in if condition #627: FILE: mm/slub.c:2827: + if (!page->inuse && (state = slab_trylock(page))) { total: 1 errors, 0 warnings, 611 lines checked Your patch has style problems, please review. If any of these errors are false positives report them to the maintainer, see CHECKPATCH in MAINTAINERS. Please run checkpatch prior to sending patches Seems nicer this way. Should the `if (page->inuse)' test be marked unlikely()? Cc: Christoph Lameter <clameter@xxxxxxx> Cc: Pekka Enberg <penberg@xxxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/slub.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff -puN mm/slub.c~slub-do-our-own-locking-via-slab_lock-and-slab_unlock-checkpatch-fixes mm/slub.c --- a/mm/slub.c~slub-do-our-own-locking-via-slab_lock-and-slab_unlock-checkpatch-fixes +++ a/mm/slub.c @@ -2819,20 +2819,23 @@ int kmem_cache_shrink(struct kmem_cache * list_lock. page->inuse here is the upper limit. */ list_for_each_entry_safe(page, t, &n->partial, lru) { - if (!page->inuse && (state = slab_trylock(page))) { - /* - * Must hold slab lock here because slab_free - * may have freed the last object and be - * waiting to release the slab. - */ - list_del(&page->lru); - n->nr_partial--; - slab_unlock(page, state); - discard_slab(s, page); - } else { + if (page->inuse) { list_move(&page->lru, slabs_by_inuse + page->inuse); + continue; } + state = slab_trylock(page); + if (!state) + continue; + /* + * Must hold slab lock here because slab_free may have + * freed the last object and be waiting to release the + * slab. + */ + list_del(&page->lru); + n->nr_partial--; + slab_unlock(page, state); + discard_slab(s, page); } /* _ Patches currently in -mm which might be from akpm@xxxxxxxxxxxxxxxxxxxx are origin.patch kvm-i386-fix.patch drivers-net-wireless-b43-mainc-needs-ioh.patch get_task_comm-return-the-result.patch clone-prepare-to-recycle-clone_detached-and-clone_stopped.patch timerfd-v3-new-timerfd-api.patch include-asm-powerpc-nvramh-needs-listh.patch serial-add-addi-data-gmbh-communication-cardsin8250_pcic-and-pci_idsh.patch pagecache-zeroing-zero_user_segment-zero_user_segments-and-zero_user.patch vmalloc-add-const-to-void-parameters.patch i386-resolve-dependency-of-asm-i386-pgtableh-on-highmemh.patch slub-fix-coding-style-violations.patch slub-provide-unique-end-marker-for-each-slab.patch slub-do-our-own-locking-via-slab_lock-and-slab_unlock.patch slub-do-our-own-locking-via-slab_lock-and-slab_unlock-checkpatch-fixes.patch bufferhead-revert-constructor-removal-checkpatch-fixes.patch shmem-factor-out-sbi-free_inodes-manipulations-fix.patch maps4-rework-task_size-macros-mips-fix.patch maps4-add-proc-kpagecount-interface-fix.patch maps4-add-proc-kpageflags-interface-fix.patch maps4-add-proc-kpageflags-interface-fix-2-fix.patch maps4-make-page-monitoring-proc-file-optional-fix.patch page-allocator-clean-up-pcp-draining-functions-swsusp-fix-fix.patch add-mm-argument-to-pte-pmd-pud-pgd_free-checkpatch-fixes.patch mm-page-writeback-highmem_is_dirtyable-option-fix.patch mm-remove-fastcall-from-mm-checkpatch-fixes.patch page-migraton-handle-orphaned-pages-fix.patch vmscan-give-referenced-active-and-unmapped-pages-a-second-trip-around-the-lru.patch vm-dont-run-touch_buffer-during-buffercache-lookups.patch revert-capabilities-clean-up-file-capability-reading.patch revert-capabilities-clean-up-file-capability-reading-checkpatch-fixes.patch add-64-bit-capability-support-to-the-kernel-checkpatch-fixes.patch add-64-bit-capability-support-to-the-kernel-fix.patch add-64-bit-capability-support-to-the-kernel-fix-modify-old-libcap-warning-message-checkpatch-fixes.patch add-64-bit-capability-support-to-the-kernel-fix-modify-old-libcap-warning-message-fix.patch smack-version-11c-simplified-mandatory-access-control-kernel-fix.patch alpha-atomic_add_return-should-return-int.patch alpha-fix-warning-by-fixing-flush_tlb_kernel_range.patch pm-qos-infrastructure-and-interface.patch pm-qos-infrastructure-and-interface-static-initialization-with-blocking-notifiers.patch dio-array_size-cleanup-update-checkpatch-fixes.patch uml-get-rid-of-asmlinkage-checkpatch-fixes.patch uml-improve-detection-of-host-cmov-checkpatch-fixes.patch uml-further-bugsc-tidying-checkpatch-fixes.patch kernel-printkc-concerns-about-the-console-handover.patch riscom8-fix-smp-brokenness-fix.patch sound-oss-pss-set_io_base-always-returns-success-mark-it-void-checkpatch-fixes.patch remove-warnings-for-longstanding-conditions-fix.patch genericizing-iova-fix.patch parallel-port-convert-port_mutex-to-the-mutex-api-checkpatch-fixes.patch remove-support-for-un-needed-_extratext-section-checkpatch-fixes.patch allow-auto-destruction-of-loop-devices-checkpatch-fixes.patch read_current_time-cleanups.patch read_current_time-cleanups-build-fix-fix.patch address-hfs-on-disk-corruption-robustness-review-comments.patch get-rid-of-nr_open-and-introduce-a-sysctl_nr_open-fix.patch kallsyms-should-prefer-non-weak-symbols-checkpatch-fixes.patch deprecate-smbfs-in-favour-of-cifs.patch quota-improve-inode-list-scanning-in-add_dquot_ref-fix.patch tty-enable-the-echoing-of-c-in-the-n_tty-discipline-checkpatch-fixes.patch stopmachine-semaphore-to-mutex-fix.patch parport-add-support-for-the-quatech-sppxp-100-parallel-port-pci-expresscard-fix.patch debug_smp_processor_id-fixlets.patch use-ilog2-in-fs-namespacec-fix.patch system-timer-fix-crash-in-100hz-system-timer-cleanup.patch speed-up-jiffies-conversion-functions-if-hz==user_hz.patch drivers-isdn-hardware-eicon-debugc-fix-uninitialized-var-warning.patch ecryptfs-make-show_options-reflect-actual-mount-options-fix.patch rtc-ds1302-rtc-support-checkpatch-fixes.patch add-hpet-rtc-emulation-to-rtc_drv_cmos-fix.patch fbmon-cleanup-trailing-whitespaces-checkpatch-fixes.patch neofb-avoid-overwriting-fb_info-fields.patch vermilionc-use-align-not-__align_mask.patch md-change-interate_mddev-to-for_each_mddev-fix.patch md-change-iterate_rdev-to-rdev_for_each-fix.patch declare-pnp-option-parsing-functions-as-__init-checkpatch-fixes.patch isapnp-driver-semaphore-to-mutex-fix.patch isapnp-driver-semaphore-to-mutex-fix-fix.patch ext3-fix-lock-inversion-in-direct-io-fix.patch kill-filp_open-checkpatch-fixes.patch rename-open_namei-to-open_pathname-fix.patch r-o-bind-mounts-elevate-write-count-during-entire-ncp_ioctl-fix.patch r-o-bind-mounts-elevate-write-count-for-do_utimes.patch r-o-bind-mounts-elevate-write-count-for-some-ioctls-checkpatch-fixes.patch r-o-bind-mounts-elevate-write-count-for-some-ioctls-vs-forbid-user-to-change-file-flags-on-quota-files.patch r-o-bind-mounts-elevate-write-count-opened-files-oops-fix.patch r-o-bind-mounts-nfs-check-mnt-instead-of-superblock-directly-checkpatch-fixes.patch r-o-bind-mounts-track-number-of-mount-writer-fix-buggy-loop-checkpatch-fixes.patch keep-track-of-mnt_writer-state-of-struct-file-fix-warn_on-fix.patch cgroup-simplify-space-stripping-fix.patch memory-controller-memory-accounting-v7.patch memory-controller-add-per-container-lru-and-reclaim-v7.patch memory-controller-oom-handling-v7.patch memory-controller-add-switch-to-control-what-type-of-pages-to-limit-v7.patch memcontrol-move-mm_cgroup-to-header-file-fix.patch memcontrol-move-mm_cgroup-to-header-file-fix-2.patch memcontrol-move-oom-task-exclusion-to-tasklist.patch memory-cgroup-enhancements-fix-zone-handling-in-try_to_free_mem_cgroup_page.patch memory-cgroup-enhancements-add-status-accounting-function-for-memory-cgroup.patch memory-cgroup-enhancements-add-memorystat-file.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-remember-reclaim-priority-in-memory-cgroup.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-modifies-vmscanc-for-isolate-globa-cgroup-lru-activity.patch cgroups-mechanism-to-process-each-task-in-a-cgroup-cleanup.patch cgroups-mechanism-to-process-each-task-in-a-cgroup-checkpatch-fixes.patch hotplug-cpu-move-tasks-in-empty-cpusets-to-parent-checkpatch-fixes.patch cpusets-update_cpumask-revision-fix.patch cpusets-update_cpumask-revision-checkpatch-fixes.patch drivers-edac-add-marvell-mv64x60-driver-fix.patch introduce-flags-for-reserve_bootmem-checkpatch-fixes.patch iget-stop-affs-from-using-iget-and-read_inode-try-checkpatch-fixes.patch iget-stop-efs-from-using-iget-and-read_inode-try-checkpatch-fixes.patch iget-stop-ext2-from-using-iget-and-read_inode-try-checkpatch-fixes.patch iget-stop-ext3-from-using-iget-and-read_inode-try-checkpatch-fixes.patch iget-stop-freevxfs-from-using-iget-and-read_inode-checkpatch-fixes.patch iget-stop-the-minix-filesystem-from-using-iget-and-checkpatch-fixes.patch iget-stop-procfs-from-using-iget-and-read_inode-checkpatch-fixes.patch iget-stop-qnx4-from-using-iget-and-read_inode-try-checkpatch-fixes.patch iget-stop-romfs-from-using-iget-and-read_inode-checkpatch-fixes.patch iget-stop-the-sysv-filesystem-from-using-iget-and-checkpatch-fixes.patch iget-stop-ufs-from-using-iget-and-read_inode-try-checkpatch-fixes.patch iget-stop-hostfs-from-using-iget-and-read_inode-checkpatch-fixes.patch iget-stop-unionfs-from-using-iget-and-read_inode-fix-2.patch embed-a-struct-path-into-struct-nameidata-instead-of-nd-dentrymnt-checkpatch-fixes.patch embed-a-struct-path-into-struct-nameidata-instead-of-nd-dentrymnt-vs-git-unionfs.patch embed-a-struct-path-into-struct-nameidata-instead-of-nd-dentrymnt-cifs-fix.patch embed-a-struct-path-into-struct-nameidata-instead-of-nd-dentrymnt-smack-fix.patch introduce-path_put-cifs-fix.patch one-less-parameter-to-__d_path-checkpatch-fixes.patch d_path-use-struct-path-in-struct-avc_audit_data-checkpatch-fixes.patch d_path-make-get_dcookie-use-a-struct-path-argument-checkpatch-fixes.patch use-struct-path-in-struct-svc_export-checkpatch-fixes.patch d_path-make-d_path-use-a-struct-path-fix.patch cleanup-the-code-managed-with-the-user_ns-option-checkpatch-fixes.patch cleanup-the-code-managed-with-pid_ns-option-checkpatch-fixes.patch proc-detect-duplicate-names-on-registration-fix.patch proc-seqfile-convert-proc_pid_status-to-properly-handle-pid-namespaces-checkpatch-fixes.patch proc-seqfile-convert-proc_pid_status-to-properly-handle-pid-namespaces-fix.patch proc-seqfile-convert-proc_pid_status-to-properly-handle-pid-namespaces-fix-2.patch proc-seqfile-convert-proc_pid_status-to-properly-handle-pid-namespaces-fix-3.patch proc-seqfile-convert-proc_pid_status-to-properly-handle-pid-namespaces-nommu-fix.patch proc-fix-openless-usage-due-to-proc_fops-flip-checkpatch-fixes.patch intel-iommu-fault_reason_index_cleanuppatch-fix.patch modules-make-module_address_lookup-safe-fix.patch wait_task_stopped-simplify-and-fix-races-with-sigcont-sigkill-untrace-fix.patch pid-sys_wait-fixes-v2-checkpatch-fixes.patch aout-suppress-aout-library-support-if-config_arch_supports_aout-vs-git-x86.patch aout-suppress-aout-library-support-if-config_arch_supports_aout-vs-sanitize-the-type-of-struct-useru_ar0.patch aout-remove-unnecessary-inclusions-of-asm-linux-aouth-alpha-fix.patch mn10300-add-the-mn10300-am33-architecture-to-the-kernel-fix.patch rewrite-rd-fixes.patch fs-remove-fastcall-it-is-always-empty-checkpatch-fixes.patch kernel-remove-fastcall-in-kernel-checkpatch-fixes.patch lib-remove-fastcall-from-lib-checkpatch-fixes.patch remove-fastcall-from-linux-include-checkpatch-fixes.patch constify-tables-in-kernel-sysctl_checkc-fix.patch aoe-statically-initialise-devlist_lock.patch xfs-convert-bex_add-to-bex_add_cpu-new-common-api-fix.patch ufs-fix-symlink-creation-on-ufs2-fix.patch libfs-allow-error-return-from-simple-attributes-fix.patch fs-hfsplus-unicodec-fix-uninitialized-var-warning.patch fs-afs-securityc-fix-uninitialized-var-warning.patch mount-options-fix-tmpfs-fix.patch char-applicom-use-pci_match_id-fix.patch add-new-string-functions-strict_strto-and-convert-kernel-params-to-use-them-fix.patch reiser4.patch jens-broke-reiser4patch-added-to-mm-tree.patch page-owner-tracking-leak-detector.patch page-owner-tracking-leak-detector-broken-on-s390.patch nr_blockdev_pages-in_interrupt-warning.patch slab-leaks3-default-y.patch profile-likely-unlikely-macros-fix.patch put_bh-debug.patch shrink_slab-handle-bad-shrinkers.patch getblk-handle-2tb-devices.patch getblk-handle-2tb-devices-fix.patch undeprecate-pci_find_device.patch w1-build-fix.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html