diff options
| -rw-r--r-- | fs/ceph/caps.c | 16 | ||||
| -rw-r--r-- | fs/ceph/inode.c | 1 | ||||
| -rw-r--r-- | fs/ceph/super.h | 2 |
3 files changed, 10 insertions, 9 deletions
diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c index 9fa08662a88d..2a5404c1c42f 100644 --- a/fs/ceph/caps.c +++ b/fs/ceph/caps.c | |||
| @@ -819,7 +819,7 @@ int __ceph_caps_used(struct ceph_inode_info *ci) | |||
| 819 | used |= CEPH_CAP_FILE_CACHE; | 819 | used |= CEPH_CAP_FILE_CACHE; |
| 820 | if (ci->i_wr_ref) | 820 | if (ci->i_wr_ref) |
| 821 | used |= CEPH_CAP_FILE_WR; | 821 | used |= CEPH_CAP_FILE_WR; |
| 822 | if (ci->i_wrbuffer_ref) | 822 | if (ci->i_wb_ref || ci->i_wrbuffer_ref) |
| 823 | used |= CEPH_CAP_FILE_BUFFER; | 823 | used |= CEPH_CAP_FILE_BUFFER; |
| 824 | return used; | 824 | return used; |
| 825 | } | 825 | } |
| @@ -1990,11 +1990,11 @@ static void __take_cap_refs(struct ceph_inode_info *ci, int got) | |||
| 1990 | if (got & CEPH_CAP_FILE_WR) | 1990 | if (got & CEPH_CAP_FILE_WR) |
| 1991 | ci->i_wr_ref++; | 1991 | ci->i_wr_ref++; |
| 1992 | if (got & CEPH_CAP_FILE_BUFFER) { | 1992 | if (got & CEPH_CAP_FILE_BUFFER) { |
| 1993 | if (ci->i_wrbuffer_ref == 0) | 1993 | if (ci->i_wb_ref == 0) |
| 1994 | ihold(&ci->vfs_inode); | 1994 | ihold(&ci->vfs_inode); |
| 1995 | ci->i_wrbuffer_ref++; | 1995 | ci->i_wb_ref++; |
| 1996 | dout("__take_cap_refs %p wrbuffer %d -> %d (?)\n", | 1996 | dout("__take_cap_refs %p wb %d -> %d (?)\n", |
| 1997 | &ci->vfs_inode, ci->i_wrbuffer_ref-1, ci->i_wrbuffer_ref); | 1997 | &ci->vfs_inode, ci->i_wb_ref-1, ci->i_wb_ref); |
| 1998 | } | 1998 | } |
| 1999 | } | 1999 | } |
| 2000 | 2000 | ||
| @@ -2169,12 +2169,12 @@ void ceph_put_cap_refs(struct ceph_inode_info *ci, int had) | |||
| 2169 | if (--ci->i_rdcache_ref == 0) | 2169 | if (--ci->i_rdcache_ref == 0) |
| 2170 | last++; | 2170 | last++; |
| 2171 | if (had & CEPH_CAP_FILE_BUFFER) { | 2171 | if (had & CEPH_CAP_FILE_BUFFER) { |
| 2172 | if (--ci->i_wrbuffer_ref == 0) { | 2172 | if (--ci->i_wb_ref == 0) { |
| 2173 | last++; | 2173 | last++; |
| 2174 | put++; | 2174 | put++; |
| 2175 | } | 2175 | } |
| 2176 | dout("put_cap_refs %p wrbuffer %d -> %d (?)\n", | 2176 | dout("put_cap_refs %p wb %d -> %d (?)\n", |
| 2177 | inode, ci->i_wrbuffer_ref+1, ci->i_wrbuffer_ref); | 2177 | inode, ci->i_wb_ref+1, ci->i_wb_ref); |
| 2178 | } | 2178 | } |
| 2179 | if (had & CEPH_CAP_FILE_WR) | 2179 | if (had & CEPH_CAP_FILE_WR) |
| 2180 | if (--ci->i_wr_ref == 0) { | 2180 | if (--ci->i_wr_ref == 0) { |
diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c index 03d6dafda61f..70b6a4839c38 100644 --- a/fs/ceph/inode.c +++ b/fs/ceph/inode.c | |||
| @@ -355,6 +355,7 @@ struct inode *ceph_alloc_inode(struct super_block *sb) | |||
| 355 | ci->i_rd_ref = 0; | 355 | ci->i_rd_ref = 0; |
| 356 | ci->i_rdcache_ref = 0; | 356 | ci->i_rdcache_ref = 0; |
| 357 | ci->i_wr_ref = 0; | 357 | ci->i_wr_ref = 0; |
| 358 | ci->i_wb_ref = 0; | ||
| 358 | ci->i_wrbuffer_ref = 0; | 359 | ci->i_wrbuffer_ref = 0; |
| 359 | ci->i_wrbuffer_ref_head = 0; | 360 | ci->i_wrbuffer_ref_head = 0; |
| 360 | ci->i_shared_gen = 0; | 361 | ci->i_shared_gen = 0; |
diff --git a/fs/ceph/super.h b/fs/ceph/super.h index b1f1b8bb1271..f5cabefa98dc 100644 --- a/fs/ceph/super.h +++ b/fs/ceph/super.h | |||
| @@ -293,7 +293,7 @@ struct ceph_inode_info { | |||
| 293 | 293 | ||
| 294 | /* held references to caps */ | 294 | /* held references to caps */ |
| 295 | int i_pin_ref; | 295 | int i_pin_ref; |
| 296 | int i_rd_ref, i_rdcache_ref, i_wr_ref; | 296 | int i_rd_ref, i_rdcache_ref, i_wr_ref, i_wb_ref; |
| 297 | int i_wrbuffer_ref, i_wrbuffer_ref_head; | 297 | int i_wrbuffer_ref, i_wrbuffer_ref_head; |
| 298 | u32 i_shared_gen; /* increment each time we get FILE_SHARED */ | 298 | u32 i_shared_gen; /* increment each time we get FILE_SHARED */ |
| 299 | u32 i_rdcache_gen; /* incremented each time we get FILE_CACHE. */ | 299 | u32 i_rdcache_gen; /* incremented each time we get FILE_CACHE. */ |
