Christoph Hellwig
474fce0675
xfs: replace i_flock with a sleeping bitlock
...
We almost never block on i_flock, the exception is synchronous inode
flushing. Instead of bloating the inode with a 16/24-byte completion
that we abuse as a semaphore just implement it as a bitlock that uses
a bit waitqueue for the rare sleeping path. This primarily is a
tradeoff between a much smaller inode and a faster non-blocking
path vs faster wakeups, and we are much better off with the former.
A small downside is that we will lose lockdep checking for i_flock, but
given that it's always taken inside the ilock that should be acceptable.
Note that for example the inode writeback locking is implemented in a
very similar way.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Alex Elder <aelder@sgi.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
2012-01-17 15:06:45 -06:00
..
2010-10-05 12:16:37 +02:00
2011-08-12 16:21:35 -05:00
2011-09-15 15:08:18 +02:00
2011-08-22 16:37:24 -05:00
2011-08-12 16:21:35 -05:00
2011-08-12 16:21:35 -05:00
2011-08-12 16:21:35 -05:00
2011-08-12 16:21:35 -05:00
2011-12-16 15:17:42 -06:00
2011-08-01 02:35:04 -04:00
2011-07-25 15:03:13 -05:00
2011-07-13 13:43:50 +02:00
2008-10-30 17:14:34 +11:00
2011-10-11 21:15:09 -05:00
2011-05-24 11:17:22 -05:00
2011-11-08 10:48:23 -06:00
2011-10-11 21:15:01 -05:00
2012-01-17 15:02:28 -06:00
2009-01-09 15:46:44 +11:00
2010-01-20 10:47:48 +11:00
2012-01-13 12:11:45 -06:00
2010-01-20 10:47:48 +11:00
2009-01-09 15:53:54 +11:00
2011-07-13 13:43:50 +02:00
2010-01-15 15:31:38 -06:00
2012-01-17 15:02:28 -06:00
2011-10-11 21:15:07 -05:00
2011-10-11 21:15:09 -05:00
2011-07-25 15:03:13 -05:00
2011-11-08 10:48:23 -06:00
2010-12-16 16:05:22 -06:00
2012-01-08 13:21:22 -08:00
2011-12-16 15:12:33 -06:00
2011-10-11 21:15:09 -05:00
2011-07-13 13:43:50 +02:00
2012-01-17 15:02:28 -06:00
2010-01-15 15:31:23 -06:00
2011-07-25 15:03:13 -05:00
2011-07-13 13:43:48 +02:00
2011-07-13 13:43:48 +02:00
2011-07-13 13:43:48 +02:00
2011-10-11 21:15:03 -05:00
2011-07-25 13:56:39 -07:00
2011-07-13 13:43:48 +02:00
2011-07-13 13:43:48 +02:00
2011-07-26 15:05:16 -04:00
2011-07-13 13:43:48 +02:00
2012-01-03 11:39:55 -06:00
2011-08-12 16:21:35 -05:00
2011-12-12 17:28:20 -06:00
2011-08-12 16:21:35 -05:00
2011-12-15 14:38:30 -06:00
2011-12-15 14:38:30 -06:00
2011-03-07 10:08:35 +11:00
2011-03-07 10:09:35 +11:00
2011-12-06 10:46:23 -06:00
2011-08-12 16:21:35 -05:00
2011-11-08 10:48:23 -06:00
2010-12-20 11:59:49 +11:00
2011-12-02 14:57:31 +01:00
2011-10-11 21:15:06 -05:00
2010-07-26 13:16:51 -05:00
2011-08-12 16:21:35 -05:00
2011-07-08 11:32:51 -05:00
2011-10-11 21:15:01 -05:00
2011-01-11 20:28:17 -06:00
2011-08-12 16:21:35 -05:00
2011-07-13 13:43:50 +02:00
2009-02-09 08:37:14 +01:00
2012-01-03 22:55:00 -05:00
2012-01-03 22:55:00 -05:00
2012-01-17 15:06:45 -06:00
2012-01-17 15:06:45 -06:00
2010-07-26 13:16:36 -05:00
2012-01-17 15:06:45 -06:00
2012-01-17 15:06:45 -06:00
2011-07-08 14:35:03 +02:00
2012-01-03 22:52:40 -05:00
2011-08-12 16:21:35 -05:00
2012-01-03 22:52:40 -05:00
2011-08-12 16:21:35 -05:00
2012-01-13 12:11:46 -06:00
2010-12-16 16:05:51 -06:00
2012-01-13 12:11:45 -06:00
2011-08-12 16:21:35 -05:00
2011-04-08 08:09:12 -05:00
2010-06-24 11:35:17 +10:00
2011-10-11 11:02:49 -05:00
2012-01-08 13:21:22 -08:00
2011-04-28 13:18:04 -05:00
2011-10-11 21:15:11 -05:00
2010-05-24 10:33:39 -05:00
2011-12-08 12:30:32 -06:00
2011-12-08 13:53:30 -06:00
2011-08-12 16:21:35 -05:00
2011-10-31 17:30:54 -07:00
2011-10-11 21:15:11 -05:00
2011-12-08 12:30:32 -06:00
2011-02-01 11:42:43 +01:00
2010-01-15 15:34:22 -06:00
2011-08-12 16:21:35 -05:00
2011-08-12 16:21:35 -05:00
2011-08-12 16:21:35 -05:00
2012-01-13 12:11:45 -06:00
2011-12-16 15:33:30 -06:00
2011-12-12 16:41:44 -06:00
2011-08-12 16:21:35 -05:00
2011-12-15 14:38:30 -06:00
2011-08-12 16:21:35 -05:00
2011-10-11 21:15:08 -05:00
2011-10-11 21:15:08 -05:00
2011-07-25 15:03:13 -05:00
2011-10-11 21:15:10 -05:00
2011-10-11 21:15:10 -05:00
2011-07-25 15:03:13 -05:00
2011-08-12 16:21:35 -05:00
2011-08-12 16:21:35 -05:00
2012-01-17 15:06:45 -06:00
2011-08-12 16:21:35 -05:00
2012-01-17 15:06:45 -06:00
2011-12-23 16:41:47 -06:00
2011-08-12 16:21:35 -05:00
2011-08-12 16:21:35 -05:00
2011-08-12 16:21:35 -05:00
2012-01-17 15:02:28 -06:00
2011-10-18 15:12:04 -05:00
2011-10-11 21:15:10 -05:00
2011-08-12 16:21:35 -05:00
2010-12-20 11:59:49 +11:00
2011-10-11 21:15:08 -05:00
2011-10-17 15:42:02 -05:00
2009-02-09 08:37:14 +01:00
2011-12-08 13:53:30 -06:00
2011-12-08 13:53:30 -06:00
2011-04-28 13:18:04 -05:00
2012-01-03 22:55:00 -05:00
2012-01-03 22:55:00 -05:00
2011-08-12 16:21:35 -05:00
2012-01-13 12:11:45 -06:00
2012-01-03 22:55:00 -05:00
2011-08-12 16:21:35 -05:00
2011-08-12 13:57:55 -05:00