Skip to content

Commit c3c8149

Browse files
Russell KingAl Viro
authored andcommitted
fs/adfs: dir: add helper to mark directory buffers dirty
Provide a helper for marking directory buffers dirty so they get written back to disk. Signed-off-by: Russell King <[email protected]> Signed-off-by: Al Viro <[email protected]>
1 parent 90011c7 commit c3c8149

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

fs/adfs/dir.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,15 @@ static int adfs_dir_read_inode(struct super_block *sb, struct inode *inode,
157157
return ret;
158158
}
159159

160+
static void adfs_dir_mark_dirty(struct adfs_dir *dir)
161+
{
162+
unsigned int i;
163+
164+
/* Mark the buffers dirty */
165+
for (i = 0; i < dir->nr_buffers; i++)
166+
mark_buffer_dirty(dir->bhs[i]);
167+
}
168+
160169
static int adfs_dir_sync(struct adfs_dir *dir)
161170
{
162171
int err = 0;
@@ -280,6 +289,9 @@ adfs_dir_update(struct super_block *sb, struct object_info *obj, int wait)
280289
ret = ops->update(&dir, obj);
281290
write_unlock(&adfs_dir_lock);
282291

292+
if (ret == 0)
293+
adfs_dir_mark_dirty(&dir);
294+
283295
if (wait) {
284296
int err = adfs_dir_sync(&dir);
285297
if (!ret)

fs/adfs/dir_f.c

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@ static int
306306
adfs_f_update(struct adfs_dir *dir, struct object_info *obj)
307307
{
308308
struct super_block *sb = dir->sb;
309-
int ret, i;
309+
int ret;
310310

311311
ret = adfs_dir_find_entry(dir, obj->indaddr);
312312
if (ret < 0) {
@@ -347,9 +347,6 @@ adfs_f_update(struct adfs_dir *dir, struct object_info *obj)
347347
goto bad_dir;
348348
}
349349
#endif
350-
for (i = dir->nr_buffers - 1; i >= 0; i--)
351-
mark_buffer_dirty(dir->bh[i]);
352-
353350
ret = 0;
354351
out:
355352
return ret;

0 commit comments

Comments
 (0)