affs-6.14-rc5-tag
-----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEE8rQSAMVO+zA4DBdWxWXV+ddtWDsFAmfFzhQACgkQxWXV+ddt WDvBpg/8DtK2tw40SUNdWZC6Dbi3PRRttoIDo20iiP/8JjPDaGEY2V0DU/YT8pUQ EYQ8go/8ukQDywQn3NA3s3P16jw3yqWfh/J/+plXdeekDTga+/zn6qAjkhHeHGtK AQ6N66DqnWFPuRiIY9SA8ypW/T4yCrIuR80k6CDkUI10B62uxh5XowCIFU6PbaZs Uq2TWhwNgv90IAgvpYeJ5C1p9VuPVCohwB7clO+O86aNtFw1vWDNWrjeosqDUkbU Ul9bOSC5d3OxmWEtbOB6BaNNTpkWxqfXbzKSpdNogtk6KI9SAPTqkLq1NZqTMvBo 8HBmO28ArBfcTyl/xMLr2uKQ/Uuk/WLz6bJUHZ7h4dhkfVNiDc9nE8TG/iK0wkQ9 IHB80oTGcaLu+C3tB1F7bd0zxFX2KhPkT53tKRru4VaoKm0cZQCnUE0TYhd42ZcT eGy+l/tWY6d6jltzCp4werYrLWkrfybPePruRuthtQUbAs/15DvO3xyYaU5TWv6u KRgFhiYVFt6/Eml4GF/uhu6v6GCsAVHx0yKJicy0CO3d7/AeHP7Ux2yuQu53OFA5 sGVmm7tkeFwJl/O8dewF/DqlzHs8efRTBHMOgpVeXdYQ7gkG2k+cw9qzgpkw1cQD 89SPCzmincZqRFgvGKV9A/kG4B1oBvT9khbzPfbA8nbH32b2fzA= =cId9 -----END PGP SIGNATURE----- Merge tag 'affs-6.14-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux Pull affs fixes from David Sterba: "Two fixes from Simon Tatham. They're real bugfixes for problems with OFS floppy disks created on linux and then read in the emulated Workbench environment" * tag 'affs-6.14-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: affs: don't write overlarge OFS data block size fields affs: generate OFS sequence numbers starting at 1
This commit is contained in:
commit
99fa936e8e
1 changed files with 5 additions and 4 deletions
|
@ -596,7 +596,7 @@ affs_extent_file_ofs(struct inode *inode, u32 newsize)
|
|||
BUG_ON(tmp > bsize);
|
||||
AFFS_DATA_HEAD(bh)->ptype = cpu_to_be32(T_DATA);
|
||||
AFFS_DATA_HEAD(bh)->key = cpu_to_be32(inode->i_ino);
|
||||
AFFS_DATA_HEAD(bh)->sequence = cpu_to_be32(bidx);
|
||||
AFFS_DATA_HEAD(bh)->sequence = cpu_to_be32(bidx + 1);
|
||||
AFFS_DATA_HEAD(bh)->size = cpu_to_be32(tmp);
|
||||
affs_fix_checksum(sb, bh);
|
||||
bh->b_state &= ~(1UL << BH_New);
|
||||
|
@ -724,7 +724,8 @@ static int affs_write_end_ofs(struct file *file, struct address_space *mapping,
|
|||
tmp = min(bsize - boff, to - from);
|
||||
BUG_ON(boff + tmp > bsize || tmp > bsize);
|
||||
memcpy(AFFS_DATA(bh) + boff, data + from, tmp);
|
||||
be32_add_cpu(&AFFS_DATA_HEAD(bh)->size, tmp);
|
||||
AFFS_DATA_HEAD(bh)->size = cpu_to_be32(
|
||||
max(boff + tmp, be32_to_cpu(AFFS_DATA_HEAD(bh)->size)));
|
||||
affs_fix_checksum(sb, bh);
|
||||
mark_buffer_dirty_inode(bh, inode);
|
||||
written += tmp;
|
||||
|
@ -746,7 +747,7 @@ static int affs_write_end_ofs(struct file *file, struct address_space *mapping,
|
|||
if (buffer_new(bh)) {
|
||||
AFFS_DATA_HEAD(bh)->ptype = cpu_to_be32(T_DATA);
|
||||
AFFS_DATA_HEAD(bh)->key = cpu_to_be32(inode->i_ino);
|
||||
AFFS_DATA_HEAD(bh)->sequence = cpu_to_be32(bidx);
|
||||
AFFS_DATA_HEAD(bh)->sequence = cpu_to_be32(bidx + 1);
|
||||
AFFS_DATA_HEAD(bh)->size = cpu_to_be32(bsize);
|
||||
AFFS_DATA_HEAD(bh)->next = 0;
|
||||
bh->b_state &= ~(1UL << BH_New);
|
||||
|
@ -780,7 +781,7 @@ static int affs_write_end_ofs(struct file *file, struct address_space *mapping,
|
|||
if (buffer_new(bh)) {
|
||||
AFFS_DATA_HEAD(bh)->ptype = cpu_to_be32(T_DATA);
|
||||
AFFS_DATA_HEAD(bh)->key = cpu_to_be32(inode->i_ino);
|
||||
AFFS_DATA_HEAD(bh)->sequence = cpu_to_be32(bidx);
|
||||
AFFS_DATA_HEAD(bh)->sequence = cpu_to_be32(bidx + 1);
|
||||
AFFS_DATA_HEAD(bh)->size = cpu_to_be32(tmp);
|
||||
AFFS_DATA_HEAD(bh)->next = 0;
|
||||
bh->b_state &= ~(1UL << BH_New);
|
||||
|
|
Loading…
Add table
Reference in a new issue