misc-5.12-2021-03-02
-----BEGIN PGP SIGNATURE----- iQJEBAABCAAuFiEEwPw5LcreJtl1+l5K99NY+ylx4KYFAmA+45IQHGF4Ym9lQGtl cm5lbC5kawAKCRD301j7KXHgpv/MD/4zFTBZ2Vr3lYQB8Ds9gl3hXJ00Y/27Bh9R bQD0BNcC4o6Ytt5YMAIpM7c5Qk7U3nlTM9D7lPReBxlBHL0dQBD1nCtoqnWUqvLM H30zF6iwFl/Moy29B2+stzOnRIRxKKG9KXz9z+tnpiJrblmIGFpYUtuhp01cfxIP EJ7R4ZpaSzGwcbZ1hsnxYLlQ9KZEUnzeCPZVTazNttsrb1uZdDhiJAwNAYcQwDj0 o3LR9/21tBAAeoSw5Svso2GOW4mAnzhahxSV4yqY3cM+sZZz6dBbAX+2VTgkVaEl 026MCG229XFj55PdjjQtiqvWkJm2wADAkjxlNsgbRbgGhRdI2ko7jmJ4QEmT/jXW ziUv791hAU7SLbQP/5kkNgtJPNH2F5pup1a1pnwr7Gi9yeNfCajHvGMpvmCdJclR 2iBQuXKAAHYHFEOt08gZIlxvGhG6axar445+f1Jc00k4v/vmNK2K6aebDVYHib7Q q1LVrNWFLTV4p3k6Rk4N+0vlAoVbnsyHNILunCOLhgRaMLejYhFj6LGjAeYLZVI6 4AjWzlyQOaRakIJcIi3EWlXJRfGROFqyNjjDp35eiYyN+kv+77gar/lBdVQFeZwX CuAvfGrLUlQLhIjJgzOzN/M7BO3a5QmrIDige6GswxU1ABsLrjTmWAS04j/LXVB3 8BhXHEMx+g== =fEry -----END PGP SIGNATURE----- Merge tag 'misc-5.12-2021-03-02' of git://git.kernel.dk/linux-block Pull misc fixes from Jens Axboe: "Two misc fixes that don't belong in other branches: - Fix a regression with ia64 signals, introduced by the TIF_NOTIFY_SIGNAL change in 5.11. - Fix the current swapfile regression from this merge window" * tag 'misc-5.12-2021-03-02' of git://git.kernel.dk/linux-block: swap: fix swapfile read/write offset ia64: don't call handle_signal() unless there's actually a signal queued
This commit is contained in:
commit
f69d02e37a
|
@ -341,7 +341,8 @@ ia64_do_signal (struct sigscratch *scr, long in_syscall)
|
||||||
* need to push through a forced SIGSEGV.
|
* need to push through a forced SIGSEGV.
|
||||||
*/
|
*/
|
||||||
while (1) {
|
while (1) {
|
||||||
get_signal(&ksig);
|
if (!get_signal(&ksig))
|
||||||
|
break;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* get_signal() may have run a debugger (via notify_parent())
|
* get_signal() may have run a debugger (via notify_parent())
|
||||||
|
|
|
@ -485,6 +485,7 @@ struct backing_dev_info;
|
||||||
extern int init_swap_address_space(unsigned int type, unsigned long nr_pages);
|
extern int init_swap_address_space(unsigned int type, unsigned long nr_pages);
|
||||||
extern void exit_swap_address_space(unsigned int type);
|
extern void exit_swap_address_space(unsigned int type);
|
||||||
extern struct swap_info_struct *get_swap_device(swp_entry_t entry);
|
extern struct swap_info_struct *get_swap_device(swp_entry_t entry);
|
||||||
|
sector_t swap_page_sector(struct page *page);
|
||||||
|
|
||||||
static inline void put_swap_device(struct swap_info_struct *si)
|
static inline void put_swap_device(struct swap_info_struct *si)
|
||||||
{
|
{
|
||||||
|
|
|
@ -254,11 +254,6 @@ out:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static sector_t swap_page_sector(struct page *page)
|
|
||||||
{
|
|
||||||
return (sector_t)__page_file_index(page) << (PAGE_SHIFT - 9);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void count_swpout_vm_event(struct page *page)
|
static inline void count_swpout_vm_event(struct page *page)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
|
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
|
||||||
|
|
|
@ -219,6 +219,19 @@ offset_to_swap_extent(struct swap_info_struct *sis, unsigned long offset)
|
||||||
BUG();
|
BUG();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sector_t swap_page_sector(struct page *page)
|
||||||
|
{
|
||||||
|
struct swap_info_struct *sis = page_swap_info(page);
|
||||||
|
struct swap_extent *se;
|
||||||
|
sector_t sector;
|
||||||
|
pgoff_t offset;
|
||||||
|
|
||||||
|
offset = __page_file_index(page);
|
||||||
|
se = offset_to_swap_extent(sis, offset);
|
||||||
|
sector = se->start_block + (offset - se->start_page);
|
||||||
|
return sector << (PAGE_SHIFT - 9);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* swap allocation tell device that a cluster of swap can now be discarded,
|
* swap allocation tell device that a cluster of swap can now be discarded,
|
||||||
* to allow the swap device to optimize its wear-levelling.
|
* to allow the swap device to optimize its wear-levelling.
|
||||||
|
|
Loading…
Reference in New Issue