diff options
author | Sage Weil <sage@newdream.net> | 2010-05-27 10:40:43 -0700 |
---|---|---|
committer | Sage Weil <sage@newdream.net> | 2010-08-01 20:11:39 -0700 |
commit | 2962507ca204f886967e1a089d9bec206d427c22 (patch) | |
tree | e9cec16b13ad1d8e41c288658e62fb3bf1c66859 /fs/ceph/inode.c | |
parent | 33caad324b88f75f42d836735d86feaafb3b40cf (diff) | |
download | kernel_samsung_tuna-2962507ca204f886967e1a089d9bec206d427c22.zip kernel_samsung_tuna-2962507ca204f886967e1a089d9bec206d427c22.tar.gz kernel_samsung_tuna-2962507ca204f886967e1a089d9bec206d427c22.tar.bz2 |
ceph: perform lazy reads when file mode and caps permit
If the file mode is marked as "lazy," perform cached/buffered reads when
the caps permit it. Adjust the rdcache_gen and invalidation logic
accordingly so that we manage our cache based on the FILE_CACHE -or-
FILE_LAZYIO cap bits.
Signed-off-by: Sage Weil <sage@newdream.net>
Diffstat (limited to 'fs/ceph/inode.c')
-rw-r--r-- | fs/ceph/inode.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c index 389f9db..5d893d3 100644 --- a/fs/ceph/inode.c +++ b/fs/ceph/inode.c @@ -442,8 +442,9 @@ int ceph_fill_file_size(struct inode *inode, int issued, * the file is either opened or mmaped */ if ((issued & (CEPH_CAP_FILE_CACHE|CEPH_CAP_FILE_RD| - CEPH_CAP_FILE_WR|CEPH_CAP_FILE_BUFFER| - CEPH_CAP_FILE_EXCL)) || + CEPH_CAP_FILE_WR|CEPH_CAP_FILE_BUFFER| + CEPH_CAP_FILE_EXCL| + CEPH_CAP_FILE_LAZYIO)) || mapping_mapped(inode->i_mapping) || __ceph_caps_file_wanted(ci)) { ci->i_truncate_pending++; |