The patch titled fs-make-sure-data-stored-into-inode-is-properly-seen-before-unlocking-new-inode-fix has been added to the -mm tree. Its filename is fs-make-sure-data-stored-into-inode-is-properly-seen-before-unlocking-new-inode-fix.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://userweb.kernel.org/~akpm/stuff/added-to-mm.txt to find out what to do about this The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ Subject: fs-make-sure-data-stored-into-inode-is-properly-seen-before-unlocking-new-inode-fix From: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> add some commentary Cc: <stable@xxxxxxxxxx> Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx> Cc: Jan Kara <jack@xxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- fs/inode.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff -puN fs/inode.c~fs-make-sure-data-stored-into-inode-is-properly-seen-before-unlocking-new-inode-fix fs/inode.c --- a/fs/inode.c~fs-make-sure-data-stored-into-inode-is-properly-seen-before-unlocking-new-inode-fix +++ a/fs/inode.c @@ -697,12 +697,13 @@ void unlock_new_inode(struct inode *inod } #endif /* - * This is special! We do not need the spinlock - * when clearing I_LOCK, because we're guaranteed - * that nobody else tries to do anything about the - * state of the inode when it is locked, as we - * just created it (so there can be no old holders - * that haven't tested I_LOCK). + * This is special! We do not need the spinlock when clearing I_LOCK, + * because we're guaranteed that nobody else tries to do anything about + * the state of the inode when it is locked, as we just created it (so + * there can be no old holders that haven't tested I_LOCK). + * However we must emit the memory barrier so that other CPUs reliably + * see the clearing of I_LOCK after the other inode initialisation has + * completed. */ smp_mb(); WARN_ON((inode->i_state & (I_LOCK|I_NEW)) != (I_LOCK|I_NEW)); _ Patches currently in -mm which might be from akpm@xxxxxxxxxxxxxxxxxxxx are origin.patch fs-make-sure-data-stored-into-inode-is-properly-seen-before-unlocking-new-inode-fix.patch linux-next.patch next-remove-localversion.patch i-need-old-gcc.patch arch-x86-kernel-cpu-cpufreq-acpi-cpufreqc-avoid-cross-cpu-interrupts-by-using-smp_call_function_any.patch video-initial-support-for-adv7180-update-fix.patch timer-stats-fix-del_timer_sync-and-try_to_del_timer_sync.patch input-drivers-input-xpadc-improve-xbox-360-wireless-support-and-add-sysfs-interface.patch input-documentation-input-xpadtxt-update-for-new-driver-functionality.patch checkincludespl-add-option-to-remove-duplicates-in-place.patch zorro8390-fix-read-buffer-overflow-in-zorro8390_init_one-checkpatch-fixes.patch 3x59x-fix-pci-resource-management.patch bluetooth-fix-for-acer-bluetooth-optical-rechargeable-mouse.patch serial167-fix-read-buffer-overflow.patch waitqueues-give-waitqueue-spinlocks-their-own-lockdep-classes-checkpatch-fixes.patch st-fix-test-of-value-range-in-st_set_options-fix.patch raw-fix-rawctl-compat-ioctls-breakage-on-amd64-and-itanic.patch libfs-make-simple_read_from_buffer-conventional.patch fs-fix-overflow-in-sys_mount-for-in-kernel-calls.patch vfs-optimize-touch_time-too.patch fs-improve-remountro-vs-buffercache-coherency-fix.patch mm-make-swap-token-dummies-static-inlines-fix.patch readahead-add-blk_run_backing_dev-fix.patch readahead-add-blk_run_backing_dev-fix-fix-2.patch memory-hotplug-update-zone-pcp-at-memory-online-fix.patch revert-hugetlb-restore-interleaving-of-bootmem-huge-pages-2631.patch vmscan-dont-attempt-to-reclaim-anon-page-in-lumpy-reclaim-when-no-swap-space-is-avilable.patch revert-proc-kcore-work-around-a-bug.patch arches-drop-superfluous-casts-in-nr_free_pages-callers-checkpatch-fixes.patch tracing-page-allocator-add-trace-event-for-page-traffic-related-to-the-buddy-lists-fix.patch page-allocator-maintain-rolling-count-of-pages-to-free-from-the-pcp-checkpatch-fixes.patch frv-duplicate-output_buffer-of-e03-checkpatch-fixes.patch printk-boot_delay-rename-printk_delay_msec-to-loops_per_msec-fix.patch printk-add-printk_delay-to-make-messages-readable-for-some-scenarios-fix.patch printk-add-printk_delay-to-make-messages-readable-for-some-scenarios-cleanup.patch generic-ipi-make-struct-call_function_data-lockless-cleanup.patch proc-connector-add-event-for-process-becoming-session-leader.patch kernel-smpc-relocate-some-code.patch mmc-register-mmci-omap-hs-using-platform_driver_probe.patch sdio-add-cd-disable-support-cleanup.patch sdio-add-mmc_quirk_lenient_fn0-fix.patch at91-atmel-mci-platform-configuration-to-the-the-atmel-mci-driver-checkpatch-fixes.patch procfs-provide-stack-information-for-threads-v011-fix.patch kcore-register-vmemmap-range-fix.patch rtc-add-driver-for-mxcs-internal-rtc-module-fix.patch rtc-add-driver-for-mxcs-internal-rtc-module-fix-fix.patch rtc-philips-nxp-pcf2123-driver-v03-fix.patch gpiolib-add-names-file-in-gpio-chip-sysfs-checkpatch-fixes.patch gpiolib-add-names-file-in-gpio-chip-sysfs-checkpatch-fixes-fix.patch davinci-fb-frame-buffer-driver-for-ti-da8xx-omap-l1xx.patch davinci-fb-frame-buffer-driver-for-ti-da8xx-omap-l1xx-v4-cleanup.patch drivers-video-add-kmalloc-null-tests-fix.patch v3-minixfs-add-missing-directory-type-checking-checkpatch-fixes.patch page-types-add-feature-for-walking-process-address-space-checkpatch-fixes.patch cgroups-add-functionality-to-read-write-lock-clone_thread-forking-per-threadgroup-fix.patch memcg-remove-the-overhead-associated-with-the-root-cgroup-fix.patch memcg-add-comments-explaining-memory-barriers-checkpatch-fixes.patch memory-controller-soft-limit-reclaim-on-contention-v9-fix.patch memcg-improve-resource-counter-scalability-checkpatch-fixes.patch exec-make-do_coredump-more-resilient-to-recursive-crashes-v9-checkpatch-fixes.patch exec-let-do_coredump-limit-the-number-of-concurrent-dumps-to-pipes-v9-checkpatch-fixes.patch elf-clean-up-fill_note_info-fix.patch net-netfilter-ipvs-ip_vs_wrrc-use-lib-gcdc-fix.patch reiser4-export-remove_from_page_cache-fix.patch reiser4.patch reiser4-remove-simple_prepare_write-usage-checkpatch-fixes.patch fs-reiser4-contextc-current_is_pdflush-got-removed.patch reiser4-fix.patch slab-leaks3-default-y.patch put_bh-debug.patch getblk-handle-2tb-devices.patch getblk-handle-2tb-devices-fix.patch undeprecate-pci_find_device.patch notify_change-callers-must-hold-i_mutex.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