Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4156e735 authored by Felix Blyakher's avatar Felix Blyakher
Browse files

xfs: prevent deadlock in xfs_qm_shake()



It's possible to recurse into filesystem from the memory
allocation, which deadlocks in xfs_qm_shake(). Add check
for __GFP_FS, and bail out if it is not set.

Signed-off-by: default avatarFelix Blyakher <felixb@sgi.com>
Signed-off-by: default avatarHedi Berriche <hedi@sgi.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarAndi Kleen <ak@linux.intel.com>
Signed-off-by: default avatarFelix Blyakher <felixb@sgi.com>
parent 09632487
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -103,7 +103,7 @@ extern void *kmem_zone_zalloc(kmem_zone_t *, unsigned int __nocast);
static inline int
static inline int
kmem_shake_allow(gfp_t gfp_mask)
kmem_shake_allow(gfp_t gfp_mask)
{
{
	return (gfp_mask & __GFP_WAIT) != 0;
	return ((gfp_mask & __GFP_WAIT) && (gfp_mask & __GFP_FS));
}
}


#endif /* __XFS_SUPPORT_KMEM_H__ */
#endif /* __XFS_SUPPORT_KMEM_H__ */