lkml.org 
[lkml]   [2008]   [Jan]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 21/58] [GFS2] Move gfs2_logd into log.c
    Date
    From: Steven Whitehouse <swhiteho@redhat.com>

    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>

    diff --git a/fs/gfs2/daemon.c b/fs/gfs2/daemon.c
    index 3731ab0..e519919 100644
    --- a/fs/gfs2/daemon.c
    +++ b/fs/gfs2/daemon.c
    @@ -83,56 +83,6 @@ int gfs2_recoverd(void *data)
    }

    /**
    - * 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
    * @sdp: Pointer to GFS2 superblock
    *
    diff --git a/fs/gfs2/daemon.h b/fs/gfs2/daemon.h
    index 0de9b35..4be084f 100644
    --- a/fs/gfs2/daemon.h
    +++ b/fs/gfs2/daemon.h
    @@ -12,7 +12,6 @@

    int gfs2_glockd(void *data);
    int gfs2_recoverd(void *data);
    -int gfs2_logd(void *data);
    int gfs2_quotad(void *data);

    #endif /* __DAEMON_DOT_H__ */
    diff --git a/fs/gfs2/log.c b/fs/gfs2/log.c
    index 9192398..e88a684 100644
    --- a/fs/gfs2/log.c
    +++ b/fs/gfs2/log.c
    @@ -16,6 +16,8 @@
    #include <linux/crc32.h>
    #include <linux/lm_interface.h>
    #include <linux/delay.h>
    +#include <linux/kthread.h>
    +#include <linux/freezer.h>

    #include "gfs2.h"
    #include "incore.h"
    @@ -26,6 +28,7 @@
    #include "meta_io.h"
    #include "util.h"
    #include "dir.h"
    +#include "super.h"

    #define PULL 1

    @@ -208,7 +211,7 @@ static void gfs2_ail1_start(struct gfs2_sbd *sdp, int flags)
    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;
    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;
    +}
    +
    diff --git a/fs/gfs2/log.h b/fs/gfs2/log.h
    index 4babd43..7711528 100644
    --- a/fs/gfs2/log.h
    +++ b/fs/gfs2/log.h
    @@ -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 ssize);

    -int gfs2_ail1_empty(struct gfs2_sbd *sdp, int flags);
    -
    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_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_meta_syncfs(struct gfs2_sbd *sdp);
    +int gfs2_logd(void *data);

    #endif /* __LOG_DOT_H__ */
    --
    1.5.1.2


    \
     
     \ /
      Last update: 2008-01-21 11:13    [W:0.040 / U:59.960 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site