diff options
| -rw-r--r-- | fs/logfs/file.c | 2 | ||||
| -rw-r--r-- | fs/logfs/inode.c | 2 | ||||
| -rw-r--r-- | fs/logfs/logfs.h | 2 | ||||
| -rw-r--r-- | fs/logfs/readwrite.c | 6 |
4 files changed, 8 insertions, 4 deletions
diff --git a/fs/logfs/file.c b/fs/logfs/file.c index b548c87a86f1..3886cded283c 100644 --- a/fs/logfs/file.c +++ b/fs/logfs/file.c | |||
| @@ -230,7 +230,9 @@ int logfs_fsync(struct file *file, loff_t start, loff_t end, int datasync) | |||
| 230 | return ret; | 230 | return ret; |
| 231 | 231 | ||
| 232 | mutex_lock(&inode->i_mutex); | 232 | mutex_lock(&inode->i_mutex); |
| 233 | logfs_get_wblocks(sb, NULL, WF_LOCK); | ||
| 233 | logfs_write_anchor(sb); | 234 | logfs_write_anchor(sb); |
| 235 | logfs_put_wblocks(sb, NULL, WF_LOCK); | ||
| 234 | mutex_unlock(&inode->i_mutex); | 236 | mutex_unlock(&inode->i_mutex); |
| 235 | 237 | ||
| 236 | return 0; | 238 | return 0; |
diff --git a/fs/logfs/inode.c b/fs/logfs/inode.c index 7e441ad5f792..388d7c5a7bed 100644 --- a/fs/logfs/inode.c +++ b/fs/logfs/inode.c | |||
| @@ -364,7 +364,9 @@ static void logfs_init_once(void *_li) | |||
| 364 | 364 | ||
| 365 | static int logfs_sync_fs(struct super_block *sb, int wait) | 365 | static int logfs_sync_fs(struct super_block *sb, int wait) |
| 366 | { | 366 | { |
| 367 | logfs_get_wblocks(sb, NULL, WF_LOCK); | ||
| 367 | logfs_write_anchor(sb); | 368 | logfs_write_anchor(sb); |
| 369 | logfs_put_wblocks(sb, NULL, WF_LOCK); | ||
| 368 | return 0; | 370 | return 0; |
| 369 | } | 371 | } |
| 370 | 372 | ||
diff --git a/fs/logfs/logfs.h b/fs/logfs/logfs.h index 398ecff6e548..bb4340850c1b 100644 --- a/fs/logfs/logfs.h +++ b/fs/logfs/logfs.h | |||
| @@ -577,6 +577,8 @@ void initialize_block_counters(struct page *page, struct logfs_block *block, | |||
| 577 | __be64 *array, int page_is_empty); | 577 | __be64 *array, int page_is_empty); |
| 578 | int logfs_exist_block(struct inode *inode, u64 bix); | 578 | int logfs_exist_block(struct inode *inode, u64 bix); |
| 579 | int get_page_reserve(struct inode *inode, struct page *page); | 579 | int get_page_reserve(struct inode *inode, struct page *page); |
| 580 | void logfs_get_wblocks(struct super_block *sb, struct page *page, int lock); | ||
| 581 | void logfs_put_wblocks(struct super_block *sb, struct page *page, int lock); | ||
| 580 | extern struct logfs_block_ops indirect_block_ops; | 582 | extern struct logfs_block_ops indirect_block_ops; |
| 581 | 583 | ||
| 582 | /* segment.c */ | 584 | /* segment.c */ |
diff --git a/fs/logfs/readwrite.c b/fs/logfs/readwrite.c index 6d663e8ea6da..7b10e8aecced 100644 --- a/fs/logfs/readwrite.c +++ b/fs/logfs/readwrite.c | |||
| @@ -244,8 +244,7 @@ static void preunlock_page(struct super_block *sb, struct page *page, int lock) | |||
| 244 | * is waiting for s_write_mutex. We annotate this fact by setting PG_pre_locked | 244 | * is waiting for s_write_mutex. We annotate this fact by setting PG_pre_locked |
| 245 | * in addition to PG_locked. | 245 | * in addition to PG_locked. |
| 246 | */ | 246 | */ |
| 247 | static void logfs_get_wblocks(struct super_block *sb, struct page *page, | 247 | void logfs_get_wblocks(struct super_block *sb, struct page *page, int lock) |
| 248 | int lock) | ||
| 249 | { | 248 | { |
| 250 | struct logfs_super *super = logfs_super(sb); | 249 | struct logfs_super *super = logfs_super(sb); |
| 251 | 250 | ||
| @@ -260,8 +259,7 @@ static void logfs_get_wblocks(struct super_block *sb, struct page *page, | |||
| 260 | } | 259 | } |
| 261 | } | 260 | } |
| 262 | 261 | ||
| 263 | static void logfs_put_wblocks(struct super_block *sb, struct page *page, | 262 | void logfs_put_wblocks(struct super_block *sb, struct page *page, int lock) |
| 264 | int lock) | ||
| 265 | { | 263 | { |
| 266 | struct logfs_super *super = logfs_super(sb); | 264 | struct logfs_super *super = logfs_super(sb); |
| 267 | 265 | ||
