]> Pileus Git - ~andy/linux/blobdiff - drivers/md/md.h
Merge branch 'sony' into release
[~andy/linux] / drivers / md / md.h
index 4b07e0ab3841b5794b3da0fe2f945af5913c5f69..8e4c75c00d4628f76ca32e0aaab243e3aea70d4c 100644 (file)
@@ -97,6 +97,9 @@ struct mdk_rdev_s
        atomic_t        read_errors;    /* number of consecutive read errors that
                                         * we have tried to ignore.
                                         */
+       struct timespec last_read_error;        /* monotonic time since our
+                                                * last read error
+                                                */
        atomic_t        corrected_errors; /* number of corrected read errors,
                                           * for reporting to userspace and storing
                                           * in superblock.
@@ -282,11 +285,13 @@ struct mddev_s
        struct bitmap                   *bitmap; /* the bitmap for the device */
        struct {
                struct file             *file; /* the bitmap file */
-               long                    offset; /* offset from superblock of
+               loff_t                  offset; /* offset from superblock of
                                                 * start of bitmap. May be
                                                 * negative, but not '0'
+                                                * For external metadata, offset
+                                                * from start of device. 
                                                 */
-               long                    default_offset; /* this is the offset to use when
+               loff_t                  default_offset; /* this is the offset to use when
                                                         * hot-adding a bitmap.  It should
                                                         * eventually be settable by sysfs.
                                                         */
@@ -294,8 +299,10 @@ struct mddev_s
                unsigned long           chunksize;
                unsigned long           daemon_sleep; /* how many seconds between updates? */
                unsigned long           max_write_behind; /* write-behind mode */
+               int                     external;
        } bitmap_info;
 
+       atomic_t                        max_corr_read_errors; /* max read retries */
        struct list_head                all_mddevs;
 
        /* Generic barrier handling.
@@ -370,7 +377,7 @@ struct md_sysfs_entry {
        ssize_t (*show)(mddev_t *, char *);
        ssize_t (*store)(mddev_t *, const char *, size_t);
 };
-
+extern struct attribute_group md_bitmap_group;
 
 static inline char * mdname (mddev_t * mddev)
 {
@@ -461,6 +468,8 @@ extern void md_wait_for_blocked_rdev(mdk_rdev_t *rdev, mddev_t *mddev);
 extern void md_set_array_sectors(mddev_t *mddev, sector_t array_sectors);
 extern int md_check_no_bitmap(mddev_t *mddev);
 extern int md_integrity_register(mddev_t *mddev);
-void md_integrity_add_rdev(mdk_rdev_t *rdev, mddev_t *mddev);
+extern void md_integrity_add_rdev(mdk_rdev_t *rdev, mddev_t *mddev);
+extern int strict_strtoul_scaled(const char *cp, unsigned long *res, int scale);
+extern void restore_bitmap_write_access(struct file *file);
 
 #endif /* _MD_MD_H */