From b70ebdf607f9df79f441d4b8466b34fba32bf230 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 7 Apr 2008 16:40:52 -0700 Subject: [PATCH] kclient: try to carry CAP_EXCL when we buffer data, even if file is now closed --- src/kernel/super.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/kernel/super.h b/src/kernel/super.h index 1ff8093b5013f..d0b83cf841c4d 100644 --- a/src/kernel/super.h +++ b/src/kernel/super.h @@ -277,7 +277,10 @@ static inline int __ceph_caps_file_wanted(struct ceph_inode_info *ci) static inline int __ceph_caps_wanted(struct ceph_inode_info *ci) { - return __ceph_caps_file_wanted(ci) | __ceph_caps_used(ci); + int w = __ceph_caps_file_wanted(ci) | __ceph_caps_used(ci); + if (w & CEPH_CAP_WRBUFFER) + w |= CEPH_CAP_EXCL; /* want EXCL if we have dirty data */ + return w; } static inline int ceph_file_mode(int flags) -- 2.39.5