2006-01-16 19:50:04 +03:00
/*
* Copyright ( C ) Sistina Software , Inc . 1997 - 2003 All rights reserved .
2006-05-18 23:09:15 +04:00
* Copyright ( C ) 2004 - 2006 Red Hat , Inc . All rights reserved .
2006-01-16 19:50:04 +03:00
*
* This copyrighted material is made available to anyone wishing to use ,
* modify , copy , or redistribute it subject to the terms and conditions
2006-09-01 19:05:15 +04:00
* of the GNU General Public License version 2.
2006-01-16 19:50:04 +03:00
*/
# ifndef __LOG_DOT_H__
# define __LOG_DOT_H__
2006-09-05 18:39:21 +04:00
# include <linux/list.h>
# include <linux/spinlock.h>
# include "incore.h"
2006-01-16 19:50:04 +03:00
/**
* gfs2_log_lock - acquire the right to mess with the log manager
* @ sdp : the filesystem
*
*/
static inline void gfs2_log_lock ( struct gfs2_sbd * sdp )
2008-05-30 05:27:51 +04:00
__acquires ( & sdp - > sd_log_lock )
2006-01-16 19:50:04 +03:00
{
spin_lock ( & sdp - > sd_log_lock ) ;
}
/**
* gfs2_log_unlock - release the right to mess with the log manager
* @ sdp : the filesystem
*
*/
static inline void gfs2_log_unlock ( struct gfs2_sbd * sdp )
2008-05-30 05:27:51 +04:00
__releases ( & sdp - > sd_log_lock )
2006-01-16 19:50:04 +03:00
{
spin_unlock ( & sdp - > sd_log_lock ) ;
}
static inline void gfs2_log_pointers_init ( struct gfs2_sbd * sdp ,
unsigned int value )
{
if ( + + value = = sdp - > sd_jdesc - > jd_blocks ) {
value = 0 ;
}
sdp - > sd_log_head = sdp - > sd_log_tail = value ;
}
2010-05-21 07:30:11 +04:00
extern unsigned int gfs2_struct2blk ( struct gfs2_sbd * sdp , unsigned int nstruct ,
2006-01-16 19:50:04 +03:00
unsigned int ssize ) ;
2010-05-21 07:30:11 +04:00
extern int gfs2_log_reserve ( struct gfs2_sbd * sdp , unsigned int blks ) ;
extern void gfs2_log_incr_head ( struct gfs2_sbd * sdp ) ;
2006-01-16 19:50:04 +03:00
2010-05-21 07:30:11 +04:00
extern struct buffer_head * gfs2_log_get_buf ( struct gfs2_sbd * sdp ) ;
extern struct buffer_head * gfs2_log_fake_buf ( struct gfs2_sbd * sdp ,
2006-01-16 19:50:04 +03:00
struct buffer_head * real ) ;
2010-05-21 07:30:11 +04:00
extern void gfs2_log_flush ( struct gfs2_sbd * sdp , struct gfs2_glock * gl ) ;
extern void gfs2_log_commit ( struct gfs2_sbd * sdp , struct gfs2_trans * trans ) ;
extern void gfs2_remove_from_ail ( struct gfs2_bufdata * bd ) ;
2007-11-08 17:25:12 +03:00
2010-05-21 07:30:11 +04:00
extern void gfs2_log_shutdown ( struct gfs2_sbd * sdp ) ;
extern void gfs2_meta_syncfs ( struct gfs2_sbd * sdp ) ;
extern int gfs2_logd ( void * data ) ;
2006-01-16 19:50:04 +03:00
# endif /* __LOG_DOT_H__ */