diff options
Diffstat (limited to 'fs/cachefiles/daemon.c')
-rw-r--r-- | fs/cachefiles/daemon.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/fs/cachefiles/daemon.c b/fs/cachefiles/daemon.c index 452e98dd7560..1ee54ffd3a24 100644 --- a/fs/cachefiles/daemon.c +++ b/fs/cachefiles/daemon.c | |||
@@ -162,6 +162,8 @@ static ssize_t cachefiles_daemon_read(struct file *file, char __user *_buffer, | |||
162 | size_t buflen, loff_t *pos) | 162 | size_t buflen, loff_t *pos) |
163 | { | 163 | { |
164 | struct cachefiles_cache *cache = file->private_data; | 164 | struct cachefiles_cache *cache = file->private_data; |
165 | unsigned long long b_released; | ||
166 | unsigned f_released; | ||
165 | char buffer[256]; | 167 | char buffer[256]; |
166 | int n; | 168 | int n; |
167 | 169 | ||
@@ -174,6 +176,8 @@ static ssize_t cachefiles_daemon_read(struct file *file, char __user *_buffer, | |||
174 | cachefiles_has_space(cache, 0, 0); | 176 | cachefiles_has_space(cache, 0, 0); |
175 | 177 | ||
176 | /* summarise */ | 178 | /* summarise */ |
179 | f_released = atomic_xchg(&cache->f_released, 0); | ||
180 | b_released = atomic_long_xchg(&cache->b_released, 0); | ||
177 | clear_bit(CACHEFILES_STATE_CHANGED, &cache->flags); | 181 | clear_bit(CACHEFILES_STATE_CHANGED, &cache->flags); |
178 | 182 | ||
179 | n = snprintf(buffer, sizeof(buffer), | 183 | n = snprintf(buffer, sizeof(buffer), |
@@ -183,15 +187,18 @@ static ssize_t cachefiles_daemon_read(struct file *file, char __user *_buffer, | |||
183 | " fstop=%llx" | 187 | " fstop=%llx" |
184 | " brun=%llx" | 188 | " brun=%llx" |
185 | " bcull=%llx" | 189 | " bcull=%llx" |
186 | " bstop=%llx", | 190 | " bstop=%llx" |
191 | " freleased=%x" | ||
192 | " breleased=%llx", | ||
187 | test_bit(CACHEFILES_CULLING, &cache->flags) ? '1' : '0', | 193 | test_bit(CACHEFILES_CULLING, &cache->flags) ? '1' : '0', |
188 | (unsigned long long) cache->frun, | 194 | (unsigned long long) cache->frun, |
189 | (unsigned long long) cache->fcull, | 195 | (unsigned long long) cache->fcull, |
190 | (unsigned long long) cache->fstop, | 196 | (unsigned long long) cache->fstop, |
191 | (unsigned long long) cache->brun, | 197 | (unsigned long long) cache->brun, |
192 | (unsigned long long) cache->bcull, | 198 | (unsigned long long) cache->bcull, |
193 | (unsigned long long) cache->bstop | 199 | (unsigned long long) cache->bstop, |
194 | ); | 200 | f_released, |
201 | b_released); | ||
195 | 202 | ||
196 | if (n > buflen) | 203 | if (n > buflen) |
197 | return -EMSGSIZE; | 204 | return -EMSGSIZE; |