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
..
2012-01-10 15:09:01 -08:00
2012-01-06 23:19:54 -05:00
2012-01-03 22:55:04 -05:00
2012-01-03 22:54:53 -05:00
2012-01-11 00:20:12 -05:00
2012-01-03 22:52:40 -05:00
2012-01-03 22:54:53 -05:00
2012-01-12 20:13:09 -08:00
2012-01-03 22:54:07 -05:00
2012-01-09 16:36:12 -05:00
2012-01-08 12:19:57 -08:00
2012-01-10 11:13:16 -05:00
2012-01-03 22:54:57 -05:00
2012-01-06 23:15:54 -05:00
2012-01-08 12:19:57 -08:00
2012-01-08 20:19:03 -05:00
2012-01-10 14:55:55 -08:00
2012-01-06 23:19:54 -05:00
2012-01-03 22:52:40 -05:00
2012-01-09 12:51:01 -08:00
2012-01-09 12:51:21 -08:00
2012-01-09 12:51:21 -08:00
2012-01-10 11:54:07 -05:00
2012-01-09 12:09:47 -08:00
2012-01-03 22:55:10 -05:00
2012-01-12 12:39:21 -08:00
2012-01-10 14:55:55 -08:00
2012-01-06 23:19:54 -05:00
2012-01-10 17:48:52 -05:00
2012-01-06 23:19:54 -05:00
2012-01-03 22:54:54 -05:00
2012-01-03 22:52:41 -05:00
2012-01-12 20:13:09 -08:00
2012-01-09 10:48:11 -05:00
2012-01-09 12:51:21 -08:00
2012-01-10 11:54:07 -05:00
2012-01-10 13:45:22 -08:00
2012-01-08 13:10:57 -08:00
2012-01-06 23:16:53 -05:00
2012-01-10 13:45:22 -08:00
2012-01-08 12:19:57 -08:00
2012-01-06 23:19:54 -05:00
2012-01-12 20:13:09 -08:00
2012-01-10 14:57:40 -08:00
2012-01-08 13:10:57 -08:00
2011-11-26 19:58:47 -08:00
2012-01-03 22:57:12 -05:00
2012-01-06 23:19:54 -05:00
2012-01-10 14:55:55 -08:00
2012-01-03 22:55:01 -05:00
2012-01-03 22:52:40 -05:00
2012-01-12 20:13:13 -08:00
2012-01-08 13:21:22 -08:00
2012-01-06 23:16:53 -05:00
2012-01-03 22:55:07 -05:00
2012-01-10 16:30:54 -08:00
2012-01-10 13:45:22 -08:00
2012-01-03 22:52:40 -05:00
2012-01-03 22:55:03 -05:00
2012-01-06 23:16:53 -05:00
2012-01-10 14:57:19 -08:00
2012-01-09 12:51:21 -08:00
2012-01-06 23:19:54 -05:00
2012-01-17 15:06:45 -06:00
2012-01-03 22:55:11 -05:00
2012-01-03 22:54:54 -05:00
2012-01-10 16:30:51 -08:00
2012-01-06 23:16:53 -05:00
2012-01-12 20:13:12 -08:00
2012-01-03 22:54:07 -05:00
2011-12-13 11:18:17 -08:00
2012-01-05 15:40:12 -08:00
2012-01-03 22:55:19 -05:00
2012-01-10 13:06:32 -05:00
2012-01-12 20:13:12 -08:00
2012-01-12 20:13:04 -08:00
2012-01-10 16:30:44 -08:00
2012-01-06 23:16:53 -05:00
2012-01-06 23:20:13 -05:00
2012-01-03 22:52:39 -05:00
2012-01-10 16:59:59 -08:00
2012-01-10 16:30:42 -08:00
2012-01-06 23:20:12 -05:00
2012-01-05 15:40:12 -08:00
2012-01-09 12:51:01 -08:00
2012-01-10 16:30:51 -08:00
2012-01-03 22:54:07 -05:00
2011-12-26 10:25:26 -08:00
2012-01-06 23:15:54 -05:00
2012-01-06 23:20:12 -05:00
2012-01-06 23:15:54 -05:00
2012-01-08 13:21:22 -08:00
2012-01-06 23:16:53 -05:00
2012-01-12 20:13:04 -08:00
2012-01-03 22:57:11 -05:00
2012-01-03 22:57:11 -05:00
2012-01-06 23:19:54 -05:00
2012-01-03 22:52:40 -05:00
2012-01-03 22:54:07 -05:00
2012-01-03 22:53:07 -05:00
2012-01-06 23:20:13 -05:00
2012-01-03 22:54:07 -05:00
2012-01-03 22:52:40 -05:00