#include <linux/ceph/ceph_debug.h>
#include <asm/unaligned.h>
#include <linux/backing-dev.h>
#include <linux/completion.h>
#include <linux/exportfs.h>
#include <linux/mempool.h>
#include <linux/pagemap.h>
#include <linux/writeback.h>
#include <linux/posix_acl.h>
#include <linux/refcount.h>
#include <linux/ceph/libceph.h>
#ifdef CONFIG_CEPH_FSCACHE
#include <linux/fscache.h>
#define CEPH_SUPER_MAGIC 0x00c36400
#define CEPH_BLOCK_SHIFT 22
#define CEPH_BLOCK (1 << CEPH_BLOCK_SHIFT)
#define CEPH_MOUNT_OPT_DIRSTAT (1<<4)
#define CEPH_MOUNT_OPT_RBYTES (1<<5)
#define CEPH_MOUNT_OPT_NOASYNCREADDIR (1<<7)
#define CEPH_MOUNT_OPT_INO32 (1<<8)
#define CEPH_MOUNT_OPT_DCACHE (1<<9)
#define CEPH_MOUNT_OPT_FSCACHE (1<<10)
#define CEPH_MOUNT_OPT_NOPOOLPERM (1<<11)
#define CEPH_MOUNT_OPT_MOUNTWAIT (1<<12)
#define CEPH_MOUNT_OPT_NOQUOTADF (1<<13)
#define CEPH_MOUNT_OPT_NOCOPYFROM (1<<14)
#define CEPH_MOUNT_OPT_DEFAULT \
(CEPH_MOUNT_OPT_DCACHE | \
CEPH_MOUNT_OPT_NOCOPYFROM)
#define ceph_set_mount_opt(fsc, opt) \
(fsc)->mount_options->flags |= CEPH_MOUNT_OPT_##opt;
#define ceph_test_mount_opt(fsc, opt) \
(!!((fsc)->mount_options->flags & CEPH_MOUNT_OPT_##opt))
#define CEPH_MAX_READ_SIZE CEPH_MSG_MAX_DATA_LEN
#define CEPH_MAX_WRITE_SIZE CEPH_MSG_MAX_DATA_LEN
#define CEPH_RASIZE_DEFAULT (8192*1024)
#define CEPH_MAX_READDIR_DEFAULT 1024
#define CEPH_MAX_READDIR_BYTES_DEFAULT (512*1024)
#define CEPH_SNAPDIRNAME_DEFAULT ".snap"