Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'for-6.15-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux

Pull btrfs fixes from David Sterba:

- handle encoded read ioctl returning EAGAIN so it does not mistakenly
free the work structure

- escape subvolume path in mount option list so it cannot be wrongly
parsed when the path contains ","

- remove folio size assertions when writing super block to device with
enabled large folios

* tag 'for-6.15-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
btrfs: remove folio order ASSERT()s in super block writeback path
btrfs: correctly escape subvol in btrfs_show_options()
btrfs: ioctl: don't free iov when btrfs_encoded_read() returns -EAGAIN

+3 -4
-2
fs/btrfs/disk-io.c
··· 3853 3853 atomic_inc(&device->sb_write_errors); 3854 3854 continue; 3855 3855 } 3856 - ASSERT(folio_order(folio) == 0); 3857 3856 3858 3857 offset = offset_in_folio(folio, bytenr); 3859 3858 disk_super = folio_address(folio) + offset; ··· 3925 3926 /* If the folio has been removed, then we know it completed. */ 3926 3927 if (IS_ERR(folio)) 3927 3928 continue; 3928 - ASSERT(folio_order(folio) == 0); 3929 3929 3930 3930 /* Folio will be unlocked once the write completes. */ 3931 3931 folio_wait_locked(folio);
+2
fs/btrfs/ioctl.c
··· 4902 4902 4903 4903 ret = btrfs_encoded_read(&kiocb, &data->iter, &data->args, &cached_state, 4904 4904 &disk_bytenr, &disk_io_size); 4905 + if (ret == -EAGAIN) 4906 + goto out_acct; 4905 4907 if (ret < 0 && ret != -EIOCBQUEUED) 4906 4908 goto out_free; 4907 4909
+1 -2
fs/btrfs/super.c
··· 1139 1139 subvol_name = btrfs_get_subvol_name_from_objectid(info, 1140 1140 btrfs_root_id(BTRFS_I(d_inode(dentry))->root)); 1141 1141 if (!IS_ERR(subvol_name)) { 1142 - seq_puts(seq, ",subvol="); 1143 - seq_escape(seq, subvol_name, " \t\n\\"); 1142 + seq_show_option(seq, "subvol", subvol_name); 1144 1143 kfree(subvol_name); 1145 1144 } 1146 1145 return 0;