mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 10:37:35 +03:00
linux/kmem: remove PF_FSTRANS and PF_MEMALLOC_NOIO compat
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Alexander Motin <mav@FreeBSD.org> Signed-off-by: Rob Norris <robn@despairlabs.com> Sponsored-by: https://despairlabs.com/sponsor/ Closes #17551
This commit is contained in:
committed by
Brian Behlendorf
parent
cecff09faa
commit
96d20d7d59
@@ -61,7 +61,7 @@ void *spl_kvmalloc(size_t size, gfp_t flags);
|
||||
/*
|
||||
* Convert a KM_* flags mask to its Linux GFP_* counterpart. The conversion
|
||||
* function is context aware which means that KM_SLEEP allocations can be
|
||||
* safely used in syncing contexts which have set PF_FSTRANS.
|
||||
* safely used in syncing contexts which have set SPL_FSTRANS.
|
||||
*/
|
||||
static inline gfp_t
|
||||
kmem_flags_convert(int flags)
|
||||
@@ -91,25 +91,11 @@ typedef struct {
|
||||
} fstrans_cookie_t;
|
||||
|
||||
/*
|
||||
* Introduced in Linux 3.9, however this cannot be solely relied on before
|
||||
* Linux 3.18 as it doesn't turn off __GFP_FS as it should.
|
||||
* SPL_FSTRANS is the set of flags that indicate that the task is in a
|
||||
* filesystem or IO codepath, and so any allocation must not call back into
|
||||
* those codepaths (eg to swap).
|
||||
*/
|
||||
#ifdef PF_MEMALLOC_NOIO
|
||||
#define __SPL_PF_MEMALLOC_NOIO (PF_MEMALLOC_NOIO)
|
||||
#else
|
||||
#define __SPL_PF_MEMALLOC_NOIO (0)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* PF_FSTRANS is removed from Linux 4.12
|
||||
*/
|
||||
#ifdef PF_FSTRANS
|
||||
#define __SPL_PF_FSTRANS (PF_FSTRANS)
|
||||
#else
|
||||
#define __SPL_PF_FSTRANS (0)
|
||||
#endif
|
||||
|
||||
#define SPL_FSTRANS (__SPL_PF_FSTRANS|__SPL_PF_MEMALLOC_NOIO)
|
||||
#define SPL_FSTRANS (PF_MEMALLOC_NOIO)
|
||||
|
||||
static inline fstrans_cookie_t
|
||||
spl_fstrans_mark(void)
|
||||
@@ -141,16 +127,6 @@ spl_fstrans_check(void)
|
||||
return (current->flags & SPL_FSTRANS);
|
||||
}
|
||||
|
||||
/*
|
||||
* specifically used to check PF_FSTRANS flag, cannot be relied on for
|
||||
* checking spl_fstrans_mark().
|
||||
*/
|
||||
static inline int
|
||||
__spl_pf_fstrans_check(void)
|
||||
{
|
||||
return (current->flags & __SPL_PF_FSTRANS);
|
||||
}
|
||||
|
||||
/*
|
||||
* Kernel compatibility for GFP flags
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user