mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 04:18:39 +08:00
ocfs2: constify struct ocfs2_lock_res_ops
"struct ocfs2_lock_res_ops" are not modified in this driver. Constifying this structure moves some data to a read-only section, so increase overall security. In order to do it, "struct ocfs2_lock_res" also needs to be adjusted to this new const qualifier. On a x86_64, with allmodconfig: Before: ====== text data bss dec hex filename 83038 2632 400 86070 15036 fs/ocfs2/dlmglue.o After: ===== text data bss dec hex filename 83806 1992 272 86070 15036 fs/ocfs2/dlmglue.o Link: https://lkml.kernel.org/r/43d3e2ae3a97d3cbe93d6ba6ce48ae5ec04d7526.1718382288.git.christophe.jaillet@wanadoo.fr Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Cc: Mark Fasheh <mark@fasheh.com> Cc: Joel Becker <jlbec@evilplan.org> Cc: Junxiao Bi <junxiao.bi@oracle.com> Cc: Joseph Qi <jiangqi903@gmail.com> Cc: Changwei Ge <gechangwei@live.cn> Cc: Gang He <ghe@suse.com> Cc: Jun Piao <piaojun@huawei.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
c8dab79f9e
commit
3ebe69c0c3
@ -221,12 +221,12 @@ struct ocfs2_lock_res_ops {
|
||||
*/
|
||||
#define LOCK_TYPE_USES_LVB 0x2
|
||||
|
||||
static struct ocfs2_lock_res_ops ocfs2_inode_rw_lops = {
|
||||
static const struct ocfs2_lock_res_ops ocfs2_inode_rw_lops = {
|
||||
.get_osb = ocfs2_get_inode_osb,
|
||||
.flags = 0,
|
||||
};
|
||||
|
||||
static struct ocfs2_lock_res_ops ocfs2_inode_inode_lops = {
|
||||
static const struct ocfs2_lock_res_ops ocfs2_inode_inode_lops = {
|
||||
.get_osb = ocfs2_get_inode_osb,
|
||||
.check_downconvert = ocfs2_check_meta_downconvert,
|
||||
.set_lvb = ocfs2_set_meta_lvb,
|
||||
@ -234,50 +234,50 @@ static struct ocfs2_lock_res_ops ocfs2_inode_inode_lops = {
|
||||
.flags = LOCK_TYPE_REQUIRES_REFRESH|LOCK_TYPE_USES_LVB,
|
||||
};
|
||||
|
||||
static struct ocfs2_lock_res_ops ocfs2_super_lops = {
|
||||
static const struct ocfs2_lock_res_ops ocfs2_super_lops = {
|
||||
.flags = LOCK_TYPE_REQUIRES_REFRESH,
|
||||
};
|
||||
|
||||
static struct ocfs2_lock_res_ops ocfs2_rename_lops = {
|
||||
static const struct ocfs2_lock_res_ops ocfs2_rename_lops = {
|
||||
.flags = 0,
|
||||
};
|
||||
|
||||
static struct ocfs2_lock_res_ops ocfs2_nfs_sync_lops = {
|
||||
static const struct ocfs2_lock_res_ops ocfs2_nfs_sync_lops = {
|
||||
.flags = 0,
|
||||
};
|
||||
|
||||
static struct ocfs2_lock_res_ops ocfs2_trim_fs_lops = {
|
||||
static const struct ocfs2_lock_res_ops ocfs2_trim_fs_lops = {
|
||||
.flags = LOCK_TYPE_REQUIRES_REFRESH|LOCK_TYPE_USES_LVB,
|
||||
};
|
||||
|
||||
static struct ocfs2_lock_res_ops ocfs2_orphan_scan_lops = {
|
||||
static const struct ocfs2_lock_res_ops ocfs2_orphan_scan_lops = {
|
||||
.flags = LOCK_TYPE_REQUIRES_REFRESH|LOCK_TYPE_USES_LVB,
|
||||
};
|
||||
|
||||
static struct ocfs2_lock_res_ops ocfs2_dentry_lops = {
|
||||
static const struct ocfs2_lock_res_ops ocfs2_dentry_lops = {
|
||||
.get_osb = ocfs2_get_dentry_osb,
|
||||
.post_unlock = ocfs2_dentry_post_unlock,
|
||||
.downconvert_worker = ocfs2_dentry_convert_worker,
|
||||
.flags = 0,
|
||||
};
|
||||
|
||||
static struct ocfs2_lock_res_ops ocfs2_inode_open_lops = {
|
||||
static const struct ocfs2_lock_res_ops ocfs2_inode_open_lops = {
|
||||
.get_osb = ocfs2_get_inode_osb,
|
||||
.flags = 0,
|
||||
};
|
||||
|
||||
static struct ocfs2_lock_res_ops ocfs2_flock_lops = {
|
||||
static const struct ocfs2_lock_res_ops ocfs2_flock_lops = {
|
||||
.get_osb = ocfs2_get_file_osb,
|
||||
.flags = 0,
|
||||
};
|
||||
|
||||
static struct ocfs2_lock_res_ops ocfs2_qinfo_lops = {
|
||||
static const struct ocfs2_lock_res_ops ocfs2_qinfo_lops = {
|
||||
.set_lvb = ocfs2_set_qinfo_lvb,
|
||||
.get_osb = ocfs2_get_qinfo_osb,
|
||||
.flags = LOCK_TYPE_REQUIRES_REFRESH | LOCK_TYPE_USES_LVB,
|
||||
};
|
||||
|
||||
static struct ocfs2_lock_res_ops ocfs2_refcount_block_lops = {
|
||||
static const struct ocfs2_lock_res_ops ocfs2_refcount_block_lops = {
|
||||
.check_downconvert = ocfs2_check_refcount_downconvert,
|
||||
.downconvert_worker = ocfs2_refcount_convert_worker,
|
||||
.flags = 0,
|
||||
@ -510,7 +510,7 @@ static inline void ocfs2_init_start_time(struct ocfs2_mask_waiter *mw)
|
||||
static void ocfs2_lock_res_init_common(struct ocfs2_super *osb,
|
||||
struct ocfs2_lock_res *res,
|
||||
enum ocfs2_lock_type type,
|
||||
struct ocfs2_lock_res_ops *ops,
|
||||
const struct ocfs2_lock_res_ops *ops,
|
||||
void *priv)
|
||||
{
|
||||
res->l_type = type;
|
||||
@ -553,7 +553,7 @@ void ocfs2_inode_lock_res_init(struct ocfs2_lock_res *res,
|
||||
unsigned int generation,
|
||||
struct inode *inode)
|
||||
{
|
||||
struct ocfs2_lock_res_ops *ops;
|
||||
const struct ocfs2_lock_res_ops *ops;
|
||||
|
||||
switch(type) {
|
||||
case OCFS2_LOCK_TYPE_RW:
|
||||
|
@ -154,7 +154,7 @@ struct ocfs2_lock_stats {
|
||||
|
||||
struct ocfs2_lock_res {
|
||||
void *l_priv;
|
||||
struct ocfs2_lock_res_ops *l_ops;
|
||||
const struct ocfs2_lock_res_ops *l_ops;
|
||||
|
||||
|
||||
struct list_head l_blocked_list;
|
||||
|
Loading…
Reference in New Issue
Block a user