# git rev-parse -q --verify 598a597636f8618a0520fd3ccefedaed9e4709b0^{commit} 598a597636f8618a0520fd3ccefedaed9e4709b0 already have revision, skipping fetch # git checkout -q -f -B kisskb 598a597636f8618a0520fd3ccefedaed9e4709b0 # git clean -qxdf # < git log -1 # commit 598a597636f8618a0520fd3ccefedaed9e4709b0 # Merge: 58130a6cd062 2d9900f26ad6 # Author: Linus Torvalds # Date: Thu Oct 29 10:13:09 2020 -0700 # # Merge tag 'afs-fixes-20201029' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs # # Pull AFS fixes from David Howells: # # - Fix copy_file_range() to an afs file now returning EINVAL if the # splice_write file op isn't supplied. # # - Fix a deref-before-check in afs_unuse_cell(). # # - Fix a use-after-free in afs_xattr_get_acl(). # # - Fix afs to not try to clear PG_writeback when laundering a page. # # - Fix afs to take a ref on a page that it sets PG_private on and to # drop that ref when clearing PG_private. This is done through recently # added helpers. # # - Fix a page leak if write_begin() fails. # # - Fix afs_write_begin() to not alter the dirty region info stored in # page->private, but rather do this in afs_write_end() instead when we # know what we actually changed. # # - Fix afs_invalidatepage() to alter the dirty region info on a page # when partial page invalidation occurs so that we don't inadvertantly # include a span of zeros that will get written back if a page gets # laundered due to a remote 3rd-party induced invalidation. # # We mustn't, however, reduce the dirty region if the page has been # seen to be mapped (ie. we got called through the page_mkwrite vector) # as the page might still be mapped and we might lose data if the file # is extended again. # # - Fix the dirty region info to have a lower resolution if the size of # the page is too large for this to be encoded (e.g. powerpc32 with 64K # pages). # # Note that this might not be the ideal way to handle this, since it # may allow some leakage of undirtied zero bytes to the server's copy # in the case of a 3rd-party conflict. # # To aid the last two fixes, two additional changes: # # - Wrap the manipulations of the dirty region info stored in # page->private into helper functions. # # - Alter the encoding of the dirty region so that the region bounds can # be stored with one fewer bit, making a bit available for the # indication of mappedness. # # * tag 'afs-fixes-20201029' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs: # afs: Fix dirty-region encoding on ppc32 with 64K pages # afs: Fix afs_invalidatepage to adjust the dirty region # afs: Alter dirty range encoding in page->private # afs: Wrap page->private manipulations in inline functions # afs: Fix where page->private is set during write # afs: Fix page leak on afs_write_begin() failure # afs: Fix to take ref on page when PG_private is set # afs: Fix afs_launder_page to not clear PG_writeback # afs: Fix a use after free in afs_xattr_get_acl() # afs: Fix tracing deref-before-check # afs: Fix copy_file_range() # < /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/nds32le-linux/bin/nds32le-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/nds32le-linux/bin/nds32le-linux-ld --version # < git log --format=%s --max-count=1 598a597636f8618a0520fd3ccefedaed9e4709b0 # < make -s -j 48 ARCH=nds32 O=/kisskb/build/linus_nds32-allmodconfig_nds32le-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/nds32le-linux/bin/nds32le-linux- allmodconfig # < make -s -j 48 ARCH=nds32 O=/kisskb/build/linus_nds32-allmodconfig_nds32le-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/nds32le-linux/bin/nds32le-linux- help # make -s -j 48 ARCH=nds32 O=/kisskb/build/linus_nds32-allmodconfig_nds32le-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/nds32le-linux/bin/nds32le-linux- olddefconfig # make -s -j 48 ARCH=nds32 O=/kisskb/build/linus_nds32-allmodconfig_nds32le-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/nds32le-linux/bin/nds32le-linux- :1511:2: warning: #warning syscall clone3 not implemented [-Wcpp] /kisskb/src/arch/nds32/kernel/setup.c: In function 'setup_memory': /kisskb/src/arch/nds32/kernel/setup.c:247:26: warning: unused variable 'region' [-Wunused-variable] struct memblock_region *region; ^~~~~~ In file included from /kisskb/src/include/linux/printk.h:7, from /kisskb/src/include/linux/kernel.h:16, from /kisskb/src/include/linux/list.h:9, from /kisskb/src/include/linux/rculist.h:10, from /kisskb/src/include/linux/pid.h:5, from /kisskb/src/include/linux/sched.h:14, from /kisskb/src/fs/btrfs/extent-tree.c:6: /kisskb/src/fs/btrfs/extent-tree.c: In function '__btrfs_free_extent': /kisskb/src/include/linux/kern_levels.h:5:18: warning: format '%lu' expects argument of type 'long unsigned int', but argument 8 has type 'unsigned int' [-Wformat=] #define KERN_SOH "\001" /* ASCII Start Of Header */ ^~~~~~ /kisskb/src/include/linux/kern_levels.h:10:19: note: in expansion of macro 'KERN_SOH' #define KERN_CRIT KERN_SOH "2" /* critical conditions */ ^~~~~~~~ /kisskb/src/fs/btrfs/ctree.h:3148:24: note: in expansion of macro 'KERN_CRIT' btrfs_printk(fs_info, KERN_CRIT fmt, ##args) ^~~~~~~~~ /kisskb/src/fs/btrfs/extent-tree.c:3187:4: note: in expansion of macro 'btrfs_crit' btrfs_crit(info, ^~~~~~~~~~ /kisskb/src/fs/btrfs/extent-tree.c:3188:83: note: format string is defined here "invalid extent item size for key (%llu, %u, %llu) owner %llu, has %u expect >= %lu", ~~^ %u /kisskb/src/drivers/input/joystick/analog.c:160:2: warning: #warning Precise timer not defined for this architecture. [-Wcpp] #warning Precise timer not defined for this architecture. ^~~~~~~ WARNING: modpost: EXPORT symbol "clear_page" [vmlinux] version generation failed, symbol will not be versioned. WARNING: modpost: EXPORT symbol "copy_page" [vmlinux] version generation failed, symbol will not be versioned. Completed OK # rm -rf /kisskb/build/linus_nds32-allmodconfig_nds32le-gcc8 # Build took: 0:13:34.033644