|
@@ -38,12 +38,15 @@ static inline void gfs2_buffer_copy_tail(struct buffer_head *to_bh,
|
|
}
|
|
}
|
|
|
|
|
|
extern const struct address_space_operations gfs2_meta_aops;
|
|
extern const struct address_space_operations gfs2_meta_aops;
|
|
|
|
+extern const struct address_space_operations gfs2_rgrp_aops;
|
|
|
|
|
|
static inline struct gfs2_sbd *gfs2_mapping2sbd(struct address_space *mapping)
|
|
static inline struct gfs2_sbd *gfs2_mapping2sbd(struct address_space *mapping)
|
|
{
|
|
{
|
|
struct inode *inode = mapping->host;
|
|
struct inode *inode = mapping->host;
|
|
if (mapping->a_ops == &gfs2_meta_aops)
|
|
if (mapping->a_ops == &gfs2_meta_aops)
|
|
return (((struct gfs2_glock *)mapping) - 1)->gl_sbd;
|
|
return (((struct gfs2_glock *)mapping) - 1)->gl_sbd;
|
|
|
|
+ else if (mapping->a_ops == &gfs2_rgrp_aops)
|
|
|
|
+ return container_of(mapping, struct gfs2_sbd, sd_aspace);
|
|
else
|
|
else
|
|
return inode->i_sb->s_fs_info;
|
|
return inode->i_sb->s_fs_info;
|
|
}
|
|
}
|