4a55752ae2
Before this patch, function gfs2_meta_sync called filemap_fdatawrite to write the address space for the metadata being synced. That's great for inodes, but resource groups all point to the same superblock-address space, sdp->sd_aspace. Each rgrp has its own range of blocks on which it should operate. That meant every time an rgrp's metadata was synced, it would write all of them instead of just the range. This patch eliminates function gfs2_meta_sync and tailors specific metasync functions for inodes and rgrps. Signed-off-by: Bob Peterson <rpeterso@redhat.com> Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
29 lines
1.0 KiB
C
29 lines
1.0 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
|
|
* Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
|
|
*/
|
|
|
|
#ifndef __GLOPS_DOT_H__
|
|
#define __GLOPS_DOT_H__
|
|
|
|
#include "incore.h"
|
|
|
|
extern struct workqueue_struct *gfs2_freeze_wq;
|
|
|
|
extern const struct gfs2_glock_operations gfs2_meta_glops;
|
|
extern const struct gfs2_glock_operations gfs2_inode_glops;
|
|
extern const struct gfs2_glock_operations gfs2_rgrp_glops;
|
|
extern const struct gfs2_glock_operations gfs2_freeze_glops;
|
|
extern const struct gfs2_glock_operations gfs2_iopen_glops;
|
|
extern const struct gfs2_glock_operations gfs2_flock_glops;
|
|
extern const struct gfs2_glock_operations gfs2_nondisk_glops;
|
|
extern const struct gfs2_glock_operations gfs2_quota_glops;
|
|
extern const struct gfs2_glock_operations gfs2_journal_glops;
|
|
extern const struct gfs2_glock_operations *gfs2_glops_list[];
|
|
|
|
extern int gfs2_inode_metasync(struct gfs2_glock *gl);
|
|
extern void gfs2_ail_flush(struct gfs2_glock *gl, bool fsync);
|
|
|
|
#endif /* __GLOPS_DOT_H__ */
|