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 'fs_for_v6.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs

Pull udf and quota updates from Jan Kara:
"A fix for UDF and quota"

* tag 'fs_for_v6.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
fs: udf: fix OOB read in lengthAllocDescs handling
fs: quota: create dedicated workqueue for quota_release_work

+12 -1
+9 -1
fs/quota/dquot.c
··· 162 162 /* SLAB cache for dquot structures */ 163 163 static struct kmem_cache *dquot_cachep; 164 164 165 + /* workqueue for work quota_release_work*/ 166 + static struct workqueue_struct *quota_unbound_wq; 167 + 165 168 void register_quota_format(struct quota_format_type *fmt) 166 169 { 167 170 spin_lock(&dq_list_lock); ··· 884 881 put_releasing_dquots(dquot); 885 882 atomic_dec(&dquot->dq_count); 886 883 spin_unlock(&dq_list_lock); 887 - queue_delayed_work(system_dfl_wq, &quota_release_work, 1); 884 + queue_delayed_work(quota_unbound_wq, &quota_release_work, 1); 888 885 } 889 886 EXPORT_SYMBOL(dqput); 890 887 ··· 3043 3040 dqcache_shrinker->scan_objects = dqcache_shrink_scan; 3044 3041 3045 3042 shrinker_register(dqcache_shrinker); 3043 + 3044 + quota_unbound_wq = alloc_workqueue("quota_events_unbound", 3045 + WQ_UNBOUND | WQ_MEM_RECLAIM, WQ_MAX_ACTIVE); 3046 + if (!quota_unbound_wq) 3047 + panic("Cannot create quota_unbound_wq\n"); 3046 3048 3047 3049 return 0; 3048 3050 }
+3
fs/udf/inode.c
··· 2272 2272 if (check_add_overflow(sizeof(struct allocExtDesc), 2273 2273 le32_to_cpu(header->lengthAllocDescs), &alen)) 2274 2274 return -1; 2275 + 2276 + if (alen > epos->bh->b_size) 2277 + return -1; 2275 2278 } 2276 2279 2277 2280 switch (iinfo->i_alloc_type) {