diff options
author | Jeff Layton <jlayton@primarydata.com> | 2015-01-16 23:05:54 +0300 |
---|---|---|
committer | Jeff Layton <jlayton@primarydata.com> | 2015-01-16 23:05:54 +0300 |
commit | 4a075e39c86490cc0f0c10ac6abe3592d1689463 (patch) | |
tree | 8da8633f9f717128c02a08ad15b7d9f067091acb /fs/ceph | |
parent | dd459bb1974c5e9cff3dfbf4f6fdb3e9363ef32e (diff) | |
download | linux-4a075e39c86490cc0f0c10ac6abe3592d1689463.tar.xz |
locks: add a new struct file_locking_context pointer to struct inode
The current scheme of using the i_flock list is really difficult to
manage. There is also a legitimate desire for a per-inode spinlock to
manage these lists that isn't the i_lock.
Start conversion to a new scheme to eventually replace the old i_flock
list with a new "file_lock_context" object.
We start by adding a new i_flctx to struct inode. For now, it lives in
parallel with i_flock list, but will eventually replace it. The idea is
to allocate a structure to sit in that pointer and act as a locus for
all things file locking.
We allocate a file_lock_context for an inode when the first lock is
added to it, and it's only freed when the inode is freed. We use the
i_lock to protect the assignment, but afterward it should mostly be
accessed locklessly.
Signed-off-by: Jeff Layton <jlayton@primarydata.com>
Acked-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'fs/ceph')
0 files changed, 0 insertions, 0 deletions