]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
fs/adfs: dir: add helper to mark directory buffers dirty
authorRussell King <rmk+kernel@armlinux.org.uk>
Mon, 9 Dec 2019 11:09:45 +0000 (11:09 +0000)
committerAl Viro <viro@zeniv.linux.org.uk>
Tue, 21 Jan 2020 01:12:41 +0000 (20:12 -0500)
Provide a helper for marking directory buffers dirty so they get
written back to disk.

Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/adfs/dir.c
fs/adfs/dir_f.c

index 882377e860410b17197778216e43bbcfad2d4362..e8aafc65d545c7801ac269b81754c0fd63cf368a 100644 (file)
@@ -157,6 +157,15 @@ static int adfs_dir_read_inode(struct super_block *sb, struct inode *inode,
        return ret;
 }
 
+static void adfs_dir_mark_dirty(struct adfs_dir *dir)
+{
+       unsigned int i;
+
+       /* Mark the buffers dirty */
+       for (i = 0; i < dir->nr_buffers; i++)
+               mark_buffer_dirty(dir->bhs[i]);
+}
+
 static int adfs_dir_sync(struct adfs_dir *dir)
 {
        int err = 0;
@@ -280,6 +289,9 @@ adfs_dir_update(struct super_block *sb, struct object_info *obj, int wait)
        ret = ops->update(&dir, obj);
        write_unlock(&adfs_dir_lock);
 
+       if (ret == 0)
+               adfs_dir_mark_dirty(&dir);
+
        if (wait) {
                int err = adfs_dir_sync(&dir);
                if (!ret)
index 027ee714f42b2962cfcb72f118dc42d33b9f235b..682df46d8d3320bc929c2cbff7d55d1c32370c6d 100644 (file)
@@ -306,7 +306,7 @@ static int
 adfs_f_update(struct adfs_dir *dir, struct object_info *obj)
 {
        struct super_block *sb = dir->sb;
-       int ret, i;
+       int ret;
 
        ret = adfs_dir_find_entry(dir, obj->indaddr);
        if (ret < 0) {
@@ -347,9 +347,6 @@ adfs_f_update(struct adfs_dir *dir, struct object_info *obj)
                goto bad_dir;
        }
 #endif
-       for (i = dir->nr_buffers - 1; i >= 0; i--)
-               mark_buffer_dirty(dir->bh[i]);
-
        ret = 0;
 out:
        return ret;