]> git.sesse.net Git - bcachefs-tools-debian/blobdiff - libbcachefs/util.h
Update bcachefs sources to 3856459b1b bcachefs: bch2_btree_iter_peek_node_and_restart()
[bcachefs-tools-debian] / libbcachefs / util.h
index d994c1577c747bd688f89a060d8ad5b54f59c9b8..ecfe54012e3d0306b04e0c7c7e5ffa790b0a4742 100644 (file)
@@ -60,12 +60,14 @@ static inline void vpfree(void *p, size_t size)
                free_pages((unsigned long) p, get_order(size));
 }
 
-static inline void *vpmalloc(size_t size, gfp_t gfp_mask)
+static inline void *_vpmalloc(size_t size, gfp_t gfp_mask)
 {
-       return (void *) __get_free_pages(gfp_mask|__GFP_NOWARN,
+       return (void *) _get_free_pages(gfp_mask|__GFP_NOWARN,
                                         get_order(size)) ?:
                __vmalloc(size, gfp_mask);
 }
+#define vpmalloc(_size, _gfp)                  \
+       alloc_hooks(_vpmalloc(_size, _gfp), void *, NULL)
 
 static inline void kvpfree(void *p, size_t size)
 {
@@ -75,12 +77,14 @@ static inline void kvpfree(void *p, size_t size)
                vpfree(p, size);
 }
 
-static inline void *kvpmalloc(size_t size, gfp_t gfp_mask)
+static inline void *_kvpmalloc(size_t size, gfp_t gfp_mask)
 {
        return size < PAGE_SIZE
-               ? kmalloc(size, gfp_mask)
-               : vpmalloc(size, gfp_mask);
+               ? _kmalloc(size, gfp_mask)
+               : _vpmalloc(size, gfp_mask);
 }
+#define kvpmalloc(_size, _gfp)                 \
+       alloc_hooks(_kvpmalloc(_size, _gfp), void *, NULL)
 
 int mempool_init_kvpmalloc_pool(mempool_t *, int, size_t);
 
@@ -530,7 +534,9 @@ static inline unsigned fract_exp_two(unsigned x, unsigned fract_bits)
 }
 
 void bch2_bio_map(struct bio *bio, void *base, size_t);
-int bch2_bio_alloc_pages(struct bio *, size_t, gfp_t);
+int _bch2_bio_alloc_pages(struct bio *, size_t, gfp_t);
+#define bch2_bio_alloc_pages(_bio, _size, _gfp)                                \
+       alloc_hooks(_bch2_bio_alloc_pages(_bio, _size, _gfp), int, -ENOMEM)
 
 static inline sector_t bdev_sectors(struct block_device *bdev)
 {
@@ -566,11 +572,9 @@ do {                                                                       \
 #define kthread_wait_freezable(cond)                                   \
 ({                                                                     \
        int _ret = 0;                                                   \
-       bool frozen;                                                    \
-                                                                       \
        while (1) {                                                     \
                set_current_state(TASK_INTERRUPTIBLE);                  \
-               if (kthread_freezable_should_stop(&frozen)) {           \
+               if (kthread_should_stop()) {                            \
                        _ret = -1;                                      \
                        break;                                          \
                }                                                       \
@@ -579,6 +583,7 @@ do {                                                                        \
                        break;                                          \
                                                                        \
                schedule();                                             \
+               try_to_freeze();                                        \
        }                                                               \
        set_current_state(TASK_RUNNING);                                \
        _ret;                                                           \