Loading fs/ntfs3/frecord.c +1 −0 Original line number Diff line number Diff line Loading @@ -3265,6 +3265,7 @@ int ni_write_inode(struct inode *inode, int sync, const char *hint) modified = true; } /* std attribute is always in primary MFT record. */ if (modified) ni->mi.dirty = true; Loading fs/ntfs3/fslog.c +11 −13 Original line number Diff line number Diff line Loading @@ -3048,7 +3048,7 @@ static int do_action(struct ntfs_log *log, struct OPEN_ATTR_ENRTY *oe, struct NEW_ATTRIBUTE_SIZES *new_sz; struct ATTR_FILE_NAME *fname; struct OpenAttr *oa, *oa2; u32 nsize, t32, asize, used, esize, bmp_off, bmp_bits; u32 nsize, t32, asize, used, esize, off, bits; u16 id, id2; u32 record_size = sbi->record_size; u64 t64; Loading Loading @@ -3635,30 +3635,28 @@ static int do_action(struct ntfs_log *log, struct OPEN_ATTR_ENRTY *oe, break; case SetBitsInNonresidentBitMap: bmp_off = le32_to_cpu(((struct BITMAP_RANGE *)data)->bitmap_off); bmp_bits = le32_to_cpu(((struct BITMAP_RANGE *)data)->bits); off = le32_to_cpu(((struct BITMAP_RANGE *)data)->bitmap_off); bits = le32_to_cpu(((struct BITMAP_RANGE *)data)->bits); if (cbo + (bmp_off + 7) / 8 > lco || cbo + ((bmp_off + bmp_bits + 7) / 8) > lco) { if (cbo + (off + 7) / 8 > lco || cbo + ((off + bits + 7) / 8) > lco) { goto dirty_vol; } __bitmap_set(Add2Ptr(buffer_le, roff), bmp_off, bmp_bits); __bitmap_set(Add2Ptr(buffer_le, roff), off, bits); a_dirty = true; break; case ClearBitsInNonresidentBitMap: bmp_off = le32_to_cpu(((struct BITMAP_RANGE *)data)->bitmap_off); bmp_bits = le32_to_cpu(((struct BITMAP_RANGE *)data)->bits); off = le32_to_cpu(((struct BITMAP_RANGE *)data)->bitmap_off); bits = le32_to_cpu(((struct BITMAP_RANGE *)data)->bits); if (cbo + (bmp_off + 7) / 8 > lco || cbo + ((bmp_off + bmp_bits + 7) / 8) > lco) { if (cbo + (off + 7) / 8 > lco || cbo + ((off + bits + 7) / 8) > lco) { goto dirty_vol; } __bitmap_clear(Add2Ptr(buffer_le, roff), bmp_off, bmp_bits); __bitmap_clear(Add2Ptr(buffer_le, roff), off, bits); a_dirty = true; break; Loading Loading
fs/ntfs3/frecord.c +1 −0 Original line number Diff line number Diff line Loading @@ -3265,6 +3265,7 @@ int ni_write_inode(struct inode *inode, int sync, const char *hint) modified = true; } /* std attribute is always in primary MFT record. */ if (modified) ni->mi.dirty = true; Loading
fs/ntfs3/fslog.c +11 −13 Original line number Diff line number Diff line Loading @@ -3048,7 +3048,7 @@ static int do_action(struct ntfs_log *log, struct OPEN_ATTR_ENRTY *oe, struct NEW_ATTRIBUTE_SIZES *new_sz; struct ATTR_FILE_NAME *fname; struct OpenAttr *oa, *oa2; u32 nsize, t32, asize, used, esize, bmp_off, bmp_bits; u32 nsize, t32, asize, used, esize, off, bits; u16 id, id2; u32 record_size = sbi->record_size; u64 t64; Loading Loading @@ -3635,30 +3635,28 @@ static int do_action(struct ntfs_log *log, struct OPEN_ATTR_ENRTY *oe, break; case SetBitsInNonresidentBitMap: bmp_off = le32_to_cpu(((struct BITMAP_RANGE *)data)->bitmap_off); bmp_bits = le32_to_cpu(((struct BITMAP_RANGE *)data)->bits); off = le32_to_cpu(((struct BITMAP_RANGE *)data)->bitmap_off); bits = le32_to_cpu(((struct BITMAP_RANGE *)data)->bits); if (cbo + (bmp_off + 7) / 8 > lco || cbo + ((bmp_off + bmp_bits + 7) / 8) > lco) { if (cbo + (off + 7) / 8 > lco || cbo + ((off + bits + 7) / 8) > lco) { goto dirty_vol; } __bitmap_set(Add2Ptr(buffer_le, roff), bmp_off, bmp_bits); __bitmap_set(Add2Ptr(buffer_le, roff), off, bits); a_dirty = true; break; case ClearBitsInNonresidentBitMap: bmp_off = le32_to_cpu(((struct BITMAP_RANGE *)data)->bitmap_off); bmp_bits = le32_to_cpu(((struct BITMAP_RANGE *)data)->bits); off = le32_to_cpu(((struct BITMAP_RANGE *)data)->bitmap_off); bits = le32_to_cpu(((struct BITMAP_RANGE *)data)->bits); if (cbo + (bmp_off + 7) / 8 > lco || cbo + ((bmp_off + bmp_bits + 7) / 8) > lco) { if (cbo + (off + 7) / 8 > lco || cbo + ((off + bits + 7) / 8) > lco) { goto dirty_vol; } __bitmap_clear(Add2Ptr(buffer_le, roff), bmp_off, bmp_bits); __bitmap_clear(Add2Ptr(buffer_le, roff), off, bits); a_dirty = true; break; Loading