od_check_ff:1,
od_is_ost:1,
od_in_init:1,
- od_index_in_idif:1;
+ od_index_in_idif:1,
+ /* Other flags */
+ od_nonrotational:1;
__s64 od_auto_scrub_interval;
__u32 od_dirent_journal;
struct osd_idmap_cache oti_cache;
/* dedicated OI cache for insert (which needs inum) */
- struct osd_idmap_cache *oti_ins_cache;
- int oti_ins_cache_size;
- int oti_ins_cache_used;
+ struct osd_idmap_cache *oti_ins_cache;
+ int oti_ins_cache_size;
+ int oti_ins_cache_used;
/* inc by osd_trans_create and dec by osd_trans_stop */
- int oti_ins_cache_depth;
-
- int oti_r_locks;
- int oti_w_locks;
- int oti_txns;
- /** used in osd_fid_set() to put xattr */
- struct lu_buf oti_buf;
- struct lu_buf oti_big_buf;
- /** used in osd_ea_fid_set() to set fid into common ea */
+ int oti_ins_cache_depth;
+
+ int oti_r_locks;
+ int oti_w_locks;
+ int oti_txns;
+ /** used in osd_fid_set() to put xattr */
+ struct lu_buf oti_buf;
+ struct lu_buf oti_big_buf;
+ /** used in osd_ea_fid_set() to set fid into common ea */
union {
struct lustre_ost_attrs oti_ost_attrs;
- struct filter_fid_old oti_ff;
- struct filter_fid oti_ff_new;
+ struct filter_fid_18_23 oti_ff_old;
+ struct filter_fid oti_ff;
};
/** 0-copy IO */
- struct osd_iobuf oti_iobuf;
+ struct osd_iobuf oti_iobuf;
/* used to access objects in /O */
- struct inode *oti_inode;
+ struct inode *oti_inode;
#define OSD_FID_REC_SZ 32
- char oti_ldp[OSD_FID_REC_SZ];
- char oti_ldp2[OSD_FID_REC_SZ];
+ char oti_ldp[OSD_FID_REC_SZ];
+ char oti_ldp2[OSD_FID_REC_SZ];
/* used by quota code */
union {
#ifdef CONFIG_PROC_FS
/* osd_lproc.c */
extern struct lprocfs_vars lprocfs_osd_obd_vars[];
-extern struct lprocfs_vars lprocfs_osd_module_vars[];
int osd_procfs_init(struct osd_device *osd, const char *name);
int osd_procfs_fini(struct osd_device *osd);
void osd_brw_stats_update(struct osd_device *osd, struct osd_iobuf *iobuf);
#endif
#ifdef HAVE_BI_BDEV
-# define bio_set_dev(bio, bdev) ((bio)->bi_bdev = bdev)
-# define bio_get_queue(bio) bdev_get_queue((bio)->bi_bdev)
+# define bio_get_dev(bio) ((bio)->bi_bdev)
+# define bio_get_disk(bio) (bio_get_dev(bio)->bd_disk)
+# define bio_get_queue(bio) bdev_get_queue(bio_get_dev(bio))
+# define bio_set_dev(bio, bdev) (bio_get_dev(bio) = (bdev))
#else
-# define bio_get_queue(bio) ((bio)->bi_disk->queue)
+# define bio_get_disk(bio) ((bio)->bi_disk)
+# define bio_get_queue(bio) (bio_get_disk(bio)->queue)
#endif
void ldiskfs_inc_count(handle_t *handle, struct inode *inode);
void osd_process_truncates(struct list_head *list);
void osd_execute_truncate(struct osd_object *obj);
+#ifdef HAVE_BIO_ENDIO_USES_ONE_ARG
+#define osd_dio_complete_routine(bio, error) dio_complete_routine(bio)
+#else
+#define osd_dio_complete_routine(bio, error) dio_complete_routine(bio, error)
+#endif
+
+#ifndef HAVE___BI_CNT
+#define __bi_cnt bi_cnt
+#endif
+
+#ifndef HAVE_BI_OPF
+#define bi_opf bi_rw
+#endif
+
+#ifndef HAVE_CLEAN_BDEV_ALIASES
+#define clean_bdev_aliases(bdev, block, len) \
+ unmap_underlying_metadata((bdev), (block))
+#endif
+
+#ifndef HAVE_BI_STATUS
+#define bi_status bi_error
+#endif
+
/*
* Maximum size of xattr attributes for FEATURE_INCOMPAT_EA_INODE 1Mb
* This limit is arbitrary, but is reasonable for the xattr API.
int osd_get_integrity_profile(struct osd_device *osd,
integrity_gen_fn **generate_fn,
integrity_vrfy_fn **verify_fn);
+#else
+#define integrity_gen_fn void
+#define integrity_vrfy_fn int
+static inline int osd_get_integrity_profile(struct osd_device *osd,
+ integrity_gen_fn **generate_fn,
+ integrity_vrfy_fn **verify_fn)
+{
+ return 0;
+}
+
+static inline bool bio_integrity_prep_fn(struct bio *bio,
+ integrity_gen_fn *generate_fn,
+ integrity_vrfy_fn *verify_fn)
+{
+ return bio_integrity_prep(bio);
+}
#endif
#endif /* _OSD_INTERNAL_H */