All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Tinguely <tinguely@sgi.com>
To: stable@vger.kernel.org
Cc: xfs@oss.sgi.com
Subject: [3.0-stable PATCH 34/36] xfs: stop the sync worker before xfs_unmountfs
Date: Mon, 03 Dec 2012 17:42:42 -0600	[thread overview]
Message-ID: <20121203144311.937872980@sgi.com> (raw)
In-Reply-To: 20121203144208.143464631@sgi.com

[-- Attachment #1: xfs-stop-sync-worker-before-umount.patch --]
[-- Type: text/plain, Size: 3177 bytes --]

From: Ben Myers <bpm@sgi.com>

Upstream commit: 0ba6e5368c302819da7aff537e0d7eff2616c6a6

    xfs: stop the sync worker before xfs_unmountfs

    
    Cancel work of the xfs_sync_worker before teardown of the log in
    xfs_unmountfs.  This prevents occasional crashes on unmount like so:
    
    PID: 21602  TASK: ee9df060  CPU: 0   COMMAND: "kworker/0:3"
     #0 [c5377d28] crash_kexec at c0292c94
     #1 [c5377d80] oops_end at c07090c2
     #2 [c5377d98] no_context at c06f614e
     #3 [c5377dbc] __bad_area_nosemaphore at c06f6281
     #4 [c5377df4] bad_area_nosemaphore at c06f629b
     #5 [c5377e00] do_page_fault at c070b0cb
     #6 [c5377e7c] error_code (via page_fault) at c070892c
        EAX: f300c6a8  EBX: f300c6a8  ECX: 000000c0  EDX: 000000c0  EBP: c5377ed0
        DS:  007b      ESI: 00000000  ES:  007b      EDI: 00000001  GS:  ffffad20
        CS:  0060      EIP: c0481ad0  ERR: ffffffff  EFLAGS: 00010246
     #7 [c5377eb0] atomic64_read_cx8 at c0481ad0
     #8 [c5377ebc] xlog_assign_tail_lsn_locked at f7cc7c6e [xfs]
     #9 [c5377ed4] xfs_trans_ail_delete_bulk at f7ccd520 [xfs]
    #10 [c5377f0c] xfs_buf_iodone at f7ccb602 [xfs]
    #11 [c5377f24] xfs_buf_do_callbacks at f7cca524 [xfs]
    #12 [c5377f30] xfs_buf_iodone_callbacks at f7cca5da [xfs]
    #13 [c5377f4c] xfs_buf_iodone_work at f7c718d0 [xfs]
    #14 [c5377f58] process_one_work at c024ee4c
    #15 [c5377f98] worker_thread at c024f43d
    #16 [c5377fbc] kthread at c025326b
    #17 [c5377fe8] kernel_thread_helper at c070e834
    
    PID: 26653  TASK: e79143b0  CPU: 3   COMMAND: "umount"
     #0 [cde0fda0] __schedule at c0706595
     #1 [cde0fe28] schedule at c0706b89
     #2 [cde0fe30] schedule_timeout at c0705600
     #3 [cde0fe94] __down_common at c0706098
     #4 [cde0fec8] __down at c0706122
     #5 [cde0fed0] down at c025936f
     #6 [cde0fee0] xfs_buf_lock at f7c7131d [xfs]
     #7 [cde0ff00] xfs_freesb at f7cc2236 [xfs]
     #8 [cde0ff10] xfs_fs_put_super at f7c80f21 [xfs]
     #9 [cde0ff1c] generic_shutdown_super at c0333d7a
    #10 [cde0ff38] kill_block_super at c0333e0f
    #11 [cde0ff48] deactivate_locked_super at c0334218
    #12 [cde0ff58] deactivate_super at c033495d
    #13 [cde0ff68] mntput_no_expire at c034bc13
    #14 [cde0ff7c] sys_umount at c034cc69
    #15 [cde0ffa0] sys_oldumount at c034ccd4
    #16 [cde0ffb0] system_call at c0707e66
    
    commit 11159a05 added this to xfs_log_unmount and needs to be cleaned up
    at a later date.
    
    Signed-off-by: Ben Myers <bpm@sgi.com>
    Reviewed-by: Dave Chinner <dchinner@redhat.com>
    Reviewed-by: Mark Tinguely <tinguely@sgi.com>

---
 fs/xfs/linux-2.6/xfs_super.c |    1 +
 1 file changed, 1 insertion(+)

Index: b/fs/xfs/linux-2.6/xfs_super.c
===================================================================
--- a/fs/xfs/linux-2.6/xfs_super.c
+++ b/fs/xfs/linux-2.6/xfs_super.c
@@ -1004,6 +1004,7 @@ xfs_fs_put_super(
 
 	XFS_bflush(mp->m_ddev_targp);
 
+	cancel_delayed_work_sync(&mp->m_sync_work);
 	xfs_unmountfs(mp);
 	xfs_syncd_stop(mp);
 	xfs_freesb(mp);


_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

  parent reply	other threads:[~2012-12-03 23:40 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-03 23:42 [3.0-stable PATCH 00/36] Proposed 3.0-stable bug patches Mark Tinguely
2012-12-03 23:42 ` [3.0-stable PATCH 01/36] xfs: fix possible overflow in xfs_ioc_trim() Mark Tinguely
2012-12-03 23:42 ` [3.0-stable PATCH 02/36] xfs: fix allocation length overflow in xfs_bmapi_write() Mark Tinguely
2012-12-03 23:42 ` [3.0-stable PATCH 03/36] xfs: mark the xfssyncd workqueue as non-reentrant Mark Tinguely
2012-12-03 23:42 ` [3.0-stable PATCH 04/36] xfs: xfs_trans_add_item() - dont assign in ASSERT() when compare is intended Mark Tinguely
2012-12-03 23:42 ` [3.0-stable PATCH 05/36] xfs: only take the ILOCK in xfs_reclaim_inode() Mark Tinguely
2012-12-03 23:42 ` [3.0-stable PATCH 06/36] xfs: fallback to vmalloc for large buffers in xfs_attrmulti_attr_get Mark Tinguely
2012-12-03 23:42 ` [3.0-stable PATCH 07/36] xfs: fallback to vmalloc for large buffers in xfs_getbmap Mark Tinguely
2012-12-03 23:42 ` [3.0-stable PATCH 08/36] xfs: fix deadlock in xfs_rtfree_extent Mark Tinguely
2012-12-03 23:42 ` [3.0-stable PATCH 09/36] xfs: Fix open flag handling in open_by_handle code Mark Tinguely
2012-12-03 23:42 ` [3.0-stable PATCH 10/36] xfs: Account log unmount transaction correctly Mark Tinguely
2012-12-03 23:42 ` [3.0-stable PATCH 11/36] xfs: fix fstrim offset calculations Mark Tinguely
2012-12-03 23:42 ` [3.0-stable PATCH 12/36] xfs: dont fill statvfs with project quota for a directory Mark Tinguely
2012-12-03 23:42 ` [3.0-stable PATCH 13/36] xfs: Ensure inode reclaim can run during quotacheck Mark Tinguely
2012-12-03 23:42 ` [3.0-stable PATCH 14/36] xfs: use shared ilock mode for direct IO writes by default Mark Tinguely
2012-12-03 23:42 ` [3.0-stable PATCH 15/36] xfs: punch all delalloc blocks beyond EOF on write failure Mark Tinguely
2012-12-03 23:42 ` [3.0-stable PATCH 16/36] xfs: page type check in writeback only checks last buffer Mark Tinguely
2012-12-03 23:42 ` [3.0-stable PATCH 17/36] xfs: punch new delalloc blocks out of failed writes inside EOF Mark Tinguely
2012-12-03 23:42 ` [3.0-stable PATCH 18/36] xfs: dont assert on delalloc regions beyond EOF Mark Tinguely
2012-12-03 23:42 ` [3.0-stable PATCH 19/36] xfs: limit specualtive delalloc to maxioffset Mark Tinguely
2012-12-03 23:42 ` [3.0-stable PATCH 20/36] xfs: Use preallocation for inodes with extsz hints Mark Tinguely
2012-12-03 23:42 ` [3.0-stable PATCH 21/36] xfs: Dont allocate new buffers on every call to _xfs_buf_find Mark Tinguely
2012-12-03 23:42 ` [3.0-stable PATCH 22/36] xfs: clean up buffer allocation Mark Tinguely
2012-12-03 23:42 ` [3.0-stable PATCH 23/36] xfs: fix buffer lookup race on allocation failure Mark Tinguely
2012-12-03 23:42 ` [3.0-stable PATCH 24/36] xfs: use iolock on XFS_IOC_ALLOCSP calls Mark Tinguely
2012-12-03 23:42 ` [3.0-stable PATCH 25/36] xfs: Properly exclude IO type flags from buffer flags Mark Tinguely
2012-12-03 23:42 ` [3.0-stable PATCH 26/36] xfs: flush outstanding buffers on log mount failure Mark Tinguely
2012-12-03 23:42 ` [3.0-stable PATCH 27/36] xfs: protect xfs_sync_worker with s_umount semaphore Mark Tinguely
2012-12-03 23:42 ` [3.0-stable PATCH 28/36] xfs: fix memory reclaim deadlock on agi buffer Mark Tinguely
2012-12-03 23:42 ` [3.0-stable PATCH 29/36] xfs: xfs_vm_writepage clear iomap_valid when Mark Tinguely
2012-12-03 23:42 ` [3.0-stable PATCH 30/36] xfs: fix allocbt cursor leak in xfs_alloc_ag_vextent_near Mark Tinguely
2012-12-03 23:42 ` [3.0-stable PATCH 31/36] xfs: shutdown xfs_sync_worker before the log Mark Tinguely
2012-12-03 23:42 ` [3.0-stable PATCH 32/36] xfs: really fix the cursor leak in xfs_alloc_ag_vextent_near Mark Tinguely
2012-12-03 23:42 ` [3.0-stable PATCH 33/36] xfs: check for stale inode before acquiring iflock on push Mark Tinguely
2012-12-03 23:42 ` Mark Tinguely [this message]
2012-12-03 23:42 ` [3.0-stable PATCH 35/36] xfs: zero allocation_args on the kernel stack Mark Tinguely
2012-12-03 23:42 ` [3.0-stable PATCH 36/36] xfs: only update the last_sync_lsn when a transaction completes Mark Tinguely
2012-12-04 21:44 ` [3.0-stable PATCH 00/36] Proposed 3.0-stable bug patches Ben Myers
2012-12-05 21:45 ` Dave Chinner
2012-12-06 17:27   ` Mark Tinguely
2012-12-07 10:06     ` Dave Chinner
2012-12-07 21:15       ` Ben Myers
2012-12-08 12:06         ` Christoph Hellwig
2012-12-08 19:12         ` Greg KH
2012-12-10  0:24         ` Dave Chinner
2012-12-10 22:03           ` Ben Myers

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20121203144311.937872980@sgi.com \
    --to=tinguely@sgi.com \
    --cc=stable@vger.kernel.org \
    --cc=xfs@oss.sgi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.