Prasad Joshi
13ced29cb2
logfs: take write mutex lock during fsync and sync
LogFS uses super->s_write_mutex while writing data to disk. Taking the
same mutex lock in sync and fsync code path solves the following BUG:
------------[ cut here ]------------
kernel BUG at /home/prasad/logfs/dev_bdev.c:134!
Pid: 2387, comm: flush-253:16 Not tainted 3.0.0+ #4 Bochs Bochs
RIP: 0010:[<ffffffffa007deed>] [<ffffffffa007deed>]
bdev_writeseg+0x25d/0x270 [logfs]
Call Trace:
[<ffffffffa007c381>] logfs_open_area+0x91/0x150 [logfs]
[<ffffffff8128dcb2>] ? find_level.clone.9+0x62/0x100
[<ffffffffa007c49c>] __logfs_segment_write.clone.20+0x5c/0x190 [logfs]
[<ffffffff810ef005>] ? mempool_kmalloc+0x15/0x20
[<ffffffff810ef383>] ? mempool_alloc+0x53/0x130
[<ffffffffa007c7a4>] logfs_segment_write+0x1d4/0x230 [logfs]
[<ffffffffa0078f8e>] logfs_write_i0+0x12e/0x190 [logfs]
[<ffffffffa0079300>] __logfs_write_rec+0x140/0x220 [logfs]
[<ffffffffa0079444>] logfs_write_rec+0x64/0xd0 [logfs]
[<ffffffffa00795b6>] __logfs_write_buf+0x106/0x110 [logfs]
[<ffffffffa007a13e>] logfs_write_buf+0x4e/0x80 [logfs]
[<ffffffffa0073e33>] __logfs_writepage+0x23/0x80 [logfs]
[<ffffffffa007410c>] logfs_writepage+0xdc/0x110 [logfs]
[<ffffffff810f5ba7>] __writepage+0x17/0x40
[<ffffffff810f6208>] write_cache_pages+0x208/0x4f0
[<ffffffff810f5b90>] ? set_page_dirty+0x70/0x70
[<ffffffff810f653a>] generic_writepages+0x4a/0x70
[<ffffffff810f75d1>] do_writepages+0x21/0x40
[<ffffffff8116b9d1>] writeback_single_inode+0x101/0x250
[<ffffffff8116bdbd>] writeback_sb_inodes+0xed/0x1c0
[<ffffffff8116c5fb>] writeback_inodes_wb+0x7b/0x1e0
[<ffffffff8116cc23>] wb_writeback+0x4c3/0x530
[<ffffffff814d984d>] ? sub_preempt_count+0x9d/0xd0
[<ffffffff8116cd6b>] wb_do_writeback+0xdb/0x290
[<ffffffff814d984d>] ? sub_preempt_count+0x9d/0xd0
[<ffffffff814d6208>] ? _raw_spin_unlock_irqrestore+0x18/0x40
[<ffffffff8105aa5a>] ? del_timer+0x8a/0x120
[<ffffffff8116cfac>] bdi_writeback_thread+0x8c/0x2e0
[<ffffffff8116cf20>] ? wb_do_writeback+0x290/0x290
[<ffffffff8106d2e6>] kthread+0x96/0xa0
[<ffffffff814de514>] kernel_thread_helper+0x4/0x10
[<ffffffff8106d250>] ? kthread_worker_fn+0x190/0x190
[<ffffffff814de510>] ? gs_change+0xb/0xb
RIP [<ffffffffa007deed>] bdev_writeseg+0x25d/0x270 [logfs]
---[ end trace 0211ad60a57657c4 ]---
Reviewed-by: Joern Engel <joern@logfs.org>
Signed-off-by: Prasad Joshi <prasadjoshi.linux@gmail.com>
2012-01-28 11:36:06 +05:30
..
2011-11-02 12:53:43 +01:00
2011-11-02 12:53:43 +01:00
2011-11-02 12:53:43 +01:00
2011-11-02 12:53:43 +01:00
2011-11-02 12:53:43 +01:00
2011-11-02 12:53:43 +01:00
2011-11-02 12:53:43 +01:00
2011-12-23 14:58:39 -08:00
2011-07-20 01:44:21 -04:00
2011-12-29 08:05:14 -08:00
2011-12-08 22:04:47 -06:00
2011-11-02 12:53:43 +01:00
2011-12-13 12:35:15 -05:00
2011-07-17 23:22:02 -04:00
2011-08-22 17:41:48 -07:00
2011-11-02 12:53:43 +01:00
2011-07-25 22:49:19 -07:00
2011-11-23 15:43:53 -06:00
2011-11-02 12:53:43 +01:00
2011-11-06 19:44:47 -08:00
2011-11-02 11:41:01 -07:00
2011-11-02 11:41:01 -07:00
2011-12-13 22:29:12 -05:00
2011-11-02 12:53:43 +01:00
2011-11-02 12:53:43 +01:00
2011-07-21 10:59:16 -07:00
2011-12-14 18:23:35 -08:00
2011-11-06 19:44:47 -08:00
2011-11-15 14:29:42 -02:00
2011-11-02 12:53:43 +01:00
2011-11-02 11:41:01 -07:00
2011-11-02 12:53:43 +01:00
2011-11-02 12:53:43 +01:00
2011-11-02 12:53:43 +01:00
2011-11-02 16:07:27 -07:00
2011-11-01 19:04:59 -04:00
2011-11-01 19:09:18 -04:00
2011-11-07 09:11:16 -08:00
2011-11-06 19:44:47 -08:00
2011-09-14 08:21:48 -04:00
2012-01-28 11:36:06 +05:30
2011-11-19 11:13:28 -05:00
2011-12-14 00:45:33 -05:00
2011-12-15 18:44:36 -05:00
2011-11-06 19:44:47 -08:00
2011-12-20 10:25:04 -08:00
2011-07-26 16:49:47 -07:00
2011-11-02 12:53:43 +01:00
2011-12-01 14:55:34 -08:00
2011-07-26 13:05:28 -04:00
2011-11-02 12:53:43 +01:00
2011-10-31 17:30:54 -07:00
2011-12-29 16:31:57 -08:00
2011-11-17 12:58:07 -08:00
2011-11-02 12:53:43 +01:00
2011-11-06 19:02:23 -08:00
2011-11-02 16:06:58 -07:00
2011-11-02 12:53:43 +01:00
2011-11-02 12:53:43 +01:00
2011-11-04 16:48:37 -07:00
2011-11-02 12:53:43 +01:00
2011-11-02 12:53:43 +01:00
2011-12-13 12:35:13 -05:00
2011-11-02 11:41:01 -07:00
2011-11-02 12:53:43 +01:00
2011-12-23 16:41:47 -06:00
2011-11-02 16:07:03 -07:00
2011-07-26 12:57:09 -04:00
2011-08-09 10:31:03 +10:00
2011-07-20 20:47:59 -04:00
2011-07-20 01:43:10 -04:00
2011-11-02 16:06:58 -07:00
2011-05-03 10:10:51 +10:00
2011-11-02 12:53:43 +01:00
2011-10-31 19:30:31 -04:00
2011-11-16 09:21:50 +01:00
2011-11-04 17:22:14 -07:00
2011-11-06 19:02:23 -08:00
2011-08-07 22:24:41 -07:00
2011-10-31 17:30:44 -07:00
2011-12-06 23:57:18 -05:00
2011-05-31 16:33:35 +02:00
2011-10-28 14:58:58 +02:00
2011-05-25 08:39:26 -07:00
2011-10-31 17:30:57 -07:00
2011-10-31 17:30:45 -07:00
2011-07-26 16:49:47 -07:00
2011-12-18 14:20:17 +08:00
2011-08-01 02:10:06 -04:00
2011-11-02 12:53:43 +01:00
2011-07-20 01:44:38 -04:00
2011-10-31 19:30:31 -04:00
2011-10-31 17:30:45 -07:00
2011-11-02 12:53:43 +01:00
2011-12-26 10:25:26 -08:00
2011-10-27 08:36:51 +02:00
2011-05-25 08:39:26 -07:00
2011-05-26 10:01:43 -06:00
2011-11-07 14:58:06 -08:00
2011-12-06 23:57:18 -05:00
2011-10-28 14:59:00 +02:00
2011-10-31 17:30:51 -07:00
2011-10-28 14:58:54 +02:00
2011-10-31 17:30:44 -07:00
2011-12-06 23:57:18 -05:00
2011-07-25 20:57:11 -07:00
2011-11-02 12:53:43 +01:00
2011-11-02 12:53:42 +01:00
2011-11-04 18:15:59 -07:00
2011-11-02 12:53:42 +01:00
2011-10-31 00:33:36 +08:00
2011-06-14 11:46:14 +02:00
2011-07-18 12:29:43 -04:00