fs_pin.h 539 B

123456789101112131415161718192021222324
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #include <linux/wait.h>
  3. struct fs_pin {
  4. wait_queue_head_t wait;
  5. int done;
  6. struct hlist_node s_list;
  7. struct hlist_node m_list;
  8. void (*kill)(struct fs_pin *);
  9. };
  10. struct vfsmount;
  11. static inline void init_fs_pin(struct fs_pin *p, void (*kill)(struct fs_pin *))
  12. {
  13. init_waitqueue_head(&p->wait);
  14. INIT_HLIST_NODE(&p->s_list);
  15. INIT_HLIST_NODE(&p->m_list);
  16. p->kill = kill;
  17. }
  18. void pin_remove(struct fs_pin *);
  19. void pin_insert(struct fs_pin *, struct vfsmount *);
  20. void pin_kill(struct fs_pin *);