[GFS2] Move gfs2_logd into log.c
This means that we can mark gfs2_ail1_empty static and prepares the way for further changes. Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
This commit is contained in:
@@ -82,56 +82,6 @@ int gfs2_recoverd(void *data)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* gfs2_logd - Update log tail as Active Items get flushed to in-place blocks
|
|
||||||
* @sdp: Pointer to GFS2 superblock
|
|
||||||
*
|
|
||||||
* Also, periodically check to make sure that we're using the most recent
|
|
||||||
* journal index.
|
|
||||||
*/
|
|
||||||
|
|
||||||
int gfs2_logd(void *data)
|
|
||||||
{
|
|
||||||
struct gfs2_sbd *sdp = data;
|
|
||||||
struct gfs2_holder ji_gh;
|
|
||||||
unsigned long t;
|
|
||||||
int need_flush;
|
|
||||||
|
|
||||||
while (!kthread_should_stop()) {
|
|
||||||
/* Advance the log tail */
|
|
||||||
|
|
||||||
t = sdp->sd_log_flush_time +
|
|
||||||
gfs2_tune_get(sdp, gt_log_flush_secs) * HZ;
|
|
||||||
|
|
||||||
gfs2_ail1_empty(sdp, DIO_ALL);
|
|
||||||
gfs2_log_lock(sdp);
|
|
||||||
need_flush = sdp->sd_log_num_buf > gfs2_tune_get(sdp, gt_incore_log_blocks);
|
|
||||||
gfs2_log_unlock(sdp);
|
|
||||||
if (need_flush || time_after_eq(jiffies, t)) {
|
|
||||||
gfs2_log_flush(sdp, NULL);
|
|
||||||
sdp->sd_log_flush_time = jiffies;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Check for latest journal index */
|
|
||||||
|
|
||||||
t = sdp->sd_jindex_refresh_time +
|
|
||||||
gfs2_tune_get(sdp, gt_jindex_refresh_secs) * HZ;
|
|
||||||
|
|
||||||
if (time_after_eq(jiffies, t)) {
|
|
||||||
if (!gfs2_jindex_hold(sdp, &ji_gh))
|
|
||||||
gfs2_glock_dq_uninit(&ji_gh);
|
|
||||||
sdp->sd_jindex_refresh_time = jiffies;
|
|
||||||
}
|
|
||||||
|
|
||||||
t = gfs2_tune_get(sdp, gt_logd_secs) * HZ;
|
|
||||||
if (freezing(current))
|
|
||||||
refrigerator();
|
|
||||||
schedule_timeout_interruptible(t);
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gfs2_quotad - Write cached quota changes into the quota file
|
* gfs2_quotad - Write cached quota changes into the quota file
|
||||||
* @sdp: Pointer to GFS2 superblock
|
* @sdp: Pointer to GFS2 superblock
|
||||||
|
@@ -12,7 +12,6 @@
|
|||||||
|
|
||||||
int gfs2_glockd(void *data);
|
int gfs2_glockd(void *data);
|
||||||
int gfs2_recoverd(void *data);
|
int gfs2_recoverd(void *data);
|
||||||
int gfs2_logd(void *data);
|
|
||||||
int gfs2_quotad(void *data);
|
int gfs2_quotad(void *data);
|
||||||
|
|
||||||
#endif /* __DAEMON_DOT_H__ */
|
#endif /* __DAEMON_DOT_H__ */
|
||||||
|
@@ -16,6 +16,8 @@
|
|||||||
#include <linux/crc32.h>
|
#include <linux/crc32.h>
|
||||||
#include <linux/lm_interface.h>
|
#include <linux/lm_interface.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
|
#include <linux/kthread.h>
|
||||||
|
#include <linux/freezer.h>
|
||||||
|
|
||||||
#include "gfs2.h"
|
#include "gfs2.h"
|
||||||
#include "incore.h"
|
#include "incore.h"
|
||||||
@@ -26,6 +28,7 @@
|
|||||||
#include "meta_io.h"
|
#include "meta_io.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
#include "dir.h"
|
#include "dir.h"
|
||||||
|
#include "super.h"
|
||||||
|
|
||||||
#define PULL 1
|
#define PULL 1
|
||||||
|
|
||||||
@@ -208,7 +211,7 @@ static void gfs2_ail1_start(struct gfs2_sbd *sdp, int flags)
|
|||||||
gfs2_log_unlock(sdp);
|
gfs2_log_unlock(sdp);
|
||||||
}
|
}
|
||||||
|
|
||||||
int gfs2_ail1_empty(struct gfs2_sbd *sdp, int flags)
|
static int gfs2_ail1_empty(struct gfs2_sbd *sdp, int flags)
|
||||||
{
|
{
|
||||||
struct gfs2_ail *ai, *s;
|
struct gfs2_ail *ai, *s;
|
||||||
int ret;
|
int ret;
|
||||||
@@ -859,3 +862,54 @@ void gfs2_meta_syncfs(struct gfs2_sbd *sdp)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gfs2_logd - Update log tail as Active Items get flushed to in-place blocks
|
||||||
|
* @sdp: Pointer to GFS2 superblock
|
||||||
|
*
|
||||||
|
* Also, periodically check to make sure that we're using the most recent
|
||||||
|
* journal index.
|
||||||
|
*/
|
||||||
|
|
||||||
|
int gfs2_logd(void *data)
|
||||||
|
{
|
||||||
|
struct gfs2_sbd *sdp = data;
|
||||||
|
struct gfs2_holder ji_gh;
|
||||||
|
unsigned long t;
|
||||||
|
int need_flush;
|
||||||
|
|
||||||
|
while (!kthread_should_stop()) {
|
||||||
|
/* Advance the log tail */
|
||||||
|
|
||||||
|
t = sdp->sd_log_flush_time +
|
||||||
|
gfs2_tune_get(sdp, gt_log_flush_secs) * HZ;
|
||||||
|
|
||||||
|
gfs2_ail1_empty(sdp, DIO_ALL);
|
||||||
|
gfs2_log_lock(sdp);
|
||||||
|
need_flush = sdp->sd_log_num_buf > gfs2_tune_get(sdp, gt_incore_log_blocks);
|
||||||
|
gfs2_log_unlock(sdp);
|
||||||
|
if (need_flush || time_after_eq(jiffies, t)) {
|
||||||
|
gfs2_log_flush(sdp, NULL);
|
||||||
|
sdp->sd_log_flush_time = jiffies;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Check for latest journal index */
|
||||||
|
|
||||||
|
t = sdp->sd_jindex_refresh_time +
|
||||||
|
gfs2_tune_get(sdp, gt_jindex_refresh_secs) * HZ;
|
||||||
|
|
||||||
|
if (time_after_eq(jiffies, t)) {
|
||||||
|
if (!gfs2_jindex_hold(sdp, &ji_gh))
|
||||||
|
gfs2_glock_dq_uninit(&ji_gh);
|
||||||
|
sdp->sd_jindex_refresh_time = jiffies;
|
||||||
|
}
|
||||||
|
|
||||||
|
t = gfs2_tune_get(sdp, gt_logd_secs) * HZ;
|
||||||
|
if (freezing(current))
|
||||||
|
refrigerator();
|
||||||
|
schedule_timeout_interruptible(t);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -48,8 +48,6 @@ static inline void gfs2_log_pointers_init(struct gfs2_sbd *sdp,
|
|||||||
unsigned int gfs2_struct2blk(struct gfs2_sbd *sdp, unsigned int nstruct,
|
unsigned int gfs2_struct2blk(struct gfs2_sbd *sdp, unsigned int nstruct,
|
||||||
unsigned int ssize);
|
unsigned int ssize);
|
||||||
|
|
||||||
int gfs2_ail1_empty(struct gfs2_sbd *sdp, int flags);
|
|
||||||
|
|
||||||
int gfs2_log_reserve(struct gfs2_sbd *sdp, unsigned int blks);
|
int gfs2_log_reserve(struct gfs2_sbd *sdp, unsigned int blks);
|
||||||
void gfs2_log_release(struct gfs2_sbd *sdp, unsigned int blks);
|
void gfs2_log_release(struct gfs2_sbd *sdp, unsigned int blks);
|
||||||
void gfs2_log_incr_head(struct gfs2_sbd *sdp);
|
void gfs2_log_incr_head(struct gfs2_sbd *sdp);
|
||||||
@@ -70,5 +68,6 @@ void gfs2_remove_from_ail(struct gfs2_bufdata *bd);
|
|||||||
|
|
||||||
void gfs2_log_shutdown(struct gfs2_sbd *sdp);
|
void gfs2_log_shutdown(struct gfs2_sbd *sdp);
|
||||||
void gfs2_meta_syncfs(struct gfs2_sbd *sdp);
|
void gfs2_meta_syncfs(struct gfs2_sbd *sdp);
|
||||||
|
int gfs2_logd(void *data);
|
||||||
|
|
||||||
#endif /* __LOG_DOT_H__ */
|
#endif /* __LOG_DOT_H__ */
|
||||||
|
Reference in New Issue
Block a user