diff options
Diffstat (limited to 'fs/stat.c')
-rw-r--r-- | fs/stat.c | 11 |
1 files changed, 9 insertions, 2 deletions
@@ -447,9 +447,8 @@ void inode_add_bytes(struct inode *inode, loff_t bytes) | |||
447 | 447 | ||
448 | EXPORT_SYMBOL(inode_add_bytes); | 448 | EXPORT_SYMBOL(inode_add_bytes); |
449 | 449 | ||
450 | void inode_sub_bytes(struct inode *inode, loff_t bytes) | 450 | void __inode_sub_bytes(struct inode *inode, loff_t bytes) |
451 | { | 451 | { |
452 | spin_lock(&inode->i_lock); | ||
453 | inode->i_blocks -= bytes >> 9; | 452 | inode->i_blocks -= bytes >> 9; |
454 | bytes &= 511; | 453 | bytes &= 511; |
455 | if (inode->i_bytes < bytes) { | 454 | if (inode->i_bytes < bytes) { |
@@ -457,6 +456,14 @@ void inode_sub_bytes(struct inode *inode, loff_t bytes) | |||
457 | inode->i_bytes += 512; | 456 | inode->i_bytes += 512; |
458 | } | 457 | } |
459 | inode->i_bytes -= bytes; | 458 | inode->i_bytes -= bytes; |
459 | } | ||
460 | |||
461 | EXPORT_SYMBOL(__inode_sub_bytes); | ||
462 | |||
463 | void inode_sub_bytes(struct inode *inode, loff_t bytes) | ||
464 | { | ||
465 | spin_lock(&inode->i_lock); | ||
466 | __inode_sub_bytes(inode, bytes); | ||
460 | spin_unlock(&inode->i_lock); | 467 | spin_unlock(&inode->i_lock); |
461 | } | 468 | } |
462 | 469 | ||