diff options
Diffstat (limited to 'fs/hfsplus/super.c')
-rw-r--r-- | fs/hfsplus/super.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/fs/hfsplus/super.c b/fs/hfsplus/super.c index 811a84d2d964..796198d26553 100644 --- a/fs/hfsplus/super.c +++ b/fs/hfsplus/super.c | |||
@@ -127,8 +127,14 @@ static int hfsplus_system_write_inode(struct inode *inode) | |||
127 | hfsplus_mark_mdb_dirty(inode->i_sb); | 127 | hfsplus_mark_mdb_dirty(inode->i_sb); |
128 | } | 128 | } |
129 | hfsplus_inode_write_fork(inode, fork); | 129 | hfsplus_inode_write_fork(inode, fork); |
130 | if (tree) | 130 | if (tree) { |
131 | hfs_btree_write(tree); | 131 | int err = hfs_btree_write(tree); |
132 | if (err) { | ||
133 | printk(KERN_ERR "hfs: b-tree write err: %d, ino %lu\n", | ||
134 | err, inode->i_ino); | ||
135 | return err; | ||
136 | } | ||
137 | } | ||
132 | return 0; | 138 | return 0; |
133 | } | 139 | } |
134 | 140 | ||
@@ -226,6 +232,7 @@ out: | |||
226 | 232 | ||
227 | static void delayed_sync_fs(struct work_struct *work) | 233 | static void delayed_sync_fs(struct work_struct *work) |
228 | { | 234 | { |
235 | int err; | ||
229 | struct hfsplus_sb_info *sbi; | 236 | struct hfsplus_sb_info *sbi; |
230 | 237 | ||
231 | sbi = container_of(work, struct hfsplus_sb_info, sync_work.work); | 238 | sbi = container_of(work, struct hfsplus_sb_info, sync_work.work); |
@@ -234,7 +241,9 @@ static void delayed_sync_fs(struct work_struct *work) | |||
234 | sbi->work_queued = 0; | 241 | sbi->work_queued = 0; |
235 | spin_unlock(&sbi->work_lock); | 242 | spin_unlock(&sbi->work_lock); |
236 | 243 | ||
237 | hfsplus_sync_fs(sbi->alloc_file->i_sb, 1); | 244 | err = hfsplus_sync_fs(sbi->alloc_file->i_sb, 1); |
245 | if (err) | ||
246 | printk(KERN_ERR "hfs: delayed sync fs err %d\n", err); | ||
238 | } | 247 | } |
239 | 248 | ||
240 | void hfsplus_mark_mdb_dirty(struct super_block *sb) | 249 | void hfsplus_mark_mdb_dirty(struct super_block *sb) |