linux/fs/internal.h
<<
>>
Prefs
   1/* fs/ internal definitions
   2 *
   3 * Copyright (C) 2006 Red Hat, Inc. All Rights Reserved.
   4 * Written by David Howells (dhowells@redhat.com)
   5 *
   6 * This program is free software; you can redistribute it and/or
   7 * modify it under the terms of the GNU General Public License
   8 * as published by the Free Software Foundation; either version
   9 * 2 of the License, or (at your option) any later version.
  10 */
  11
  12#include <linux/lglock.h>
  13
  14struct super_block;
  15struct linux_binprm;
  16struct path;
  17
  18/*
  19 * block_dev.c
  20 */
  21#ifdef CONFIG_BLOCK
  22extern struct super_block *blockdev_superblock;
  23extern void __init bdev_cache_init(void);
  24
  25static inline int sb_is_blkdev_sb(struct super_block *sb)
  26{
  27        return sb == blockdev_superblock;
  28}
  29
  30extern int __sync_blockdev(struct block_device *bdev, int wait);
  31
  32#else
  33static inline void bdev_cache_init(void)
  34{
  35}
  36
  37static inline int sb_is_blkdev_sb(struct super_block *sb)
  38{
  39        return 0;
  40}
  41
  42static inline int __sync_blockdev(struct block_device *bdev, int wait)
  43{
  44        return 0;
  45}
  46#endif
  47
  48/*
  49 * char_dev.c
  50 */
  51extern void __init chrdev_init(void);
  52
  53/*
  54 * exec.c
  55 */
  56extern int check_unsafe_exec(struct linux_binprm *);
  57
  58/*
  59 * namespace.c
  60 */
  61extern int copy_mount_options(const void __user *, unsigned long *);
  62extern int copy_mount_string(const void __user *, char **);
  63
  64extern void free_vfsmnt(struct vfsmount *);
  65extern struct vfsmount *alloc_vfsmnt(const char *);
  66extern unsigned int mnt_get_count(struct vfsmount *mnt);
  67extern struct vfsmount *__lookup_mnt(struct vfsmount *, struct dentry *, int);
  68extern void mnt_set_mountpoint(struct vfsmount *, struct dentry *,
  69                                struct vfsmount *);
  70extern void release_mounts(struct list_head *);
  71extern void umount_tree(struct vfsmount *, int, struct list_head *);
  72extern struct vfsmount *copy_tree(struct vfsmount *, struct dentry *, int);
  73extern int finish_automount(struct vfsmount *, struct path *);
  74
  75extern void mnt_make_longterm(struct vfsmount *);
  76extern void mnt_make_shortterm(struct vfsmount *);
  77
  78extern void __init mnt_init(void);
  79
  80DECLARE_BRLOCK(vfsmount_lock);
  81
  82
  83/*
  84 * fs_struct.c
  85 */
  86extern void chroot_fs_refs(struct path *, struct path *);
  87
  88/*
  89 * file_table.c
  90 */
  91extern void file_sb_list_add(struct file *f, struct super_block *sb);
  92extern void file_sb_list_del(struct file *f);
  93extern void mark_files_ro(struct super_block *);
  94extern struct file *get_empty_filp(void);
  95
  96/*
  97 * super.c
  98 */
  99extern int do_remount_sb(struct super_block *, int, void *, int);
 100extern void __put_super(struct super_block *sb);
 101extern void put_super(struct super_block *sb);
 102
 103/*
 104 * open.c
 105 */
 106struct nameidata;
 107extern struct file *nameidata_to_filp(struct nameidata *);
 108extern void release_open_intent(struct nameidata *);
 109
 110/*
 111 * inode.c
 112 */
 113extern int get_nr_dirty_inodes(void);
 114extern void evict_inodes(struct super_block *);
 115extern int invalidate_inodes(struct super_block *, bool);
 116