Forráskód Böngészése

udf: Mark LVID buffer as uptodate before marking it dirty

When we hit EIO while writing LVID, the buffer uptodate bit is cleared.
This then results in an anoying warning from mark_buffer_dirty() when we
write the buffer again. So just set uptodate flag unconditionally.

Reviewed-by: Namjae Jeon <linkinjeon@gmail.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Jan Kara 13 éve
szülő
commit
853a0c25ba
1 módosított fájl, 6 hozzáadás és 0 törlés
  1. 6 0
      fs/udf/super.c

+ 6 - 0
fs/udf/super.c

@@ -1799,6 +1799,12 @@ static void udf_close_lvid(struct super_block *sb)
 				le16_to_cpu(lvid->descTag.descCRCLength)));
 				le16_to_cpu(lvid->descTag.descCRCLength)));
 
 
 	lvid->descTag.tagChecksum = udf_tag_checksum(&lvid->descTag);
 	lvid->descTag.tagChecksum = udf_tag_checksum(&lvid->descTag);
+	/*
+	 * We set buffer uptodate unconditionally here to avoid spurious
+	 * warnings from mark_buffer_dirty() when previous EIO has marked
+	 * the buffer as !uptodate
+	 */
+	set_buffer_uptodate(bh);
 	mark_buffer_dirty(bh);
 	mark_buffer_dirty(bh);
 	sbi->s_lvid_dirty = 0;
 	sbi->s_lvid_dirty = 0;
 	mutex_unlock(&sbi->s_alloc_mutex);
 	mutex_unlock(&sbi->s_alloc_mutex);