#ifndef _VX_VS_DLIMIT_H
#define _VX_VS_DLIMIT_H
-#include <linux/kernel.h>
-#include <linux/rcupdate.h>
-#include <linux/sched.h>
-
-#include "vserver/context.h"
#include "vserver/dlimit.h"
#include "vserver/debug.h"
}
-#define free_dl_info(i) \
+#define free_dl_info(i) \
call_rcu(&i->dl_rcu, rcu_free_dl_info);
#define put_dl_info(i) __put_dl_info(i,__FILE__,__LINE__)
}
-#define __dlimit_char(d) ((d)?'*':' ')
+#define __dlimit_char(d) ((d)?'*':' ')
static inline int __dl_alloc_space(struct super_block *sb,
xid_t xid, dlsize_t nr, const char *file, int line)
out:
vxlprintk(VXD_CBIT(dlim, 1),
"ALLOC (%p,#%d)%c %lld bytes (%d)",
- sb, xid, __dlimit_char(dli), nr, ret, file, line);
+ sb, xid, __dlimit_char(dli), (long long)nr,
+ ret, file, line);
return ret;
}
out:
vxlprintk(VXD_CBIT(dlim, 1),
"FREE (%p,#%d)%c %lld bytes",
- sb, xid, __dlimit_char(dli), nr, _file, _line);
+ sb, xid, __dlimit_char(dli), (long long)nr,
+ _file, _line);
}
static inline int __dl_alloc_inode(struct super_block *sb,
dli->dl_inodes_used++;
#if 0
else
- printk("VSW: DLIMIT hit (%p,#%d), inode %d>=%d @ %s:%d\n",
+ vxwprintk("DLIMIT hit (%p,#%d), inode %d>=%d @ %s:%d",
sb, xid,
dli->dl_inodes_used, dli->dl_inodes_total,
file, line);
vxlprintk(VXD_CBIT(dlim, 2),
"ADJUST: %lld,%lld on %d,%d [mult=%d]",
- bfree, broot, *free_blocks, *root_blocks,
- dli->dl_nrlmult, _file, _line);
+ (long long)bfree, (long long)broot,
+ *free_blocks, *root_blocks, dli->dl_nrlmult,
+ _file, _line);
if (free_blocks) {
if (*free_blocks > bfree)
*free_blocks = bfree;
put_dl_info(dli);
}
+#define DLIMIT_ALLOC_SPACE(in, bytes) \
+ __dl_alloc_space((in)->i_sb, (in)->i_xid, (dlsize_t)(bytes), \
+ __FILE__, __LINE__ )
-#define DLIMIT_ALLOC_BLOCK(sb, xid, nr) \
- __dl_alloc_space(sb, xid, \
- ((dlsize_t)(nr)) << (sb)->s_blocksize_bits, \
+#define DLIMIT_FREE_SPACE(in, bytes) \
+ __dl_free_space((in)->i_sb, (in)->i_xid, (dlsize_t)(bytes), \
__FILE__, __LINE__ )
-#define DLIMIT_FREE_BLOCK(sb, xid, nr) \
- __dl_free_space(sb, xid, \
- ((dlsize_t)(nr)) << (sb)->s_blocksize_bits, \
+#define DLIMIT_ALLOC_BLOCK(in, nr) \
+ __dl_alloc_space((in)->i_sb, (in)->i_xid, \
+ ((dlsize_t)(nr)) << (in)->i_sb->s_blocksize_bits, \
__FILE__, __LINE__ )
-#define DLIMIT_ALLOC_INODE(sb, xid) \
- __dl_alloc_inode(sb, xid, __FILE__, __LINE__ )
+#define DLIMIT_FREE_BLOCK(in, nr) \
+ __dl_free_space((in)->i_sb, (in)->i_xid, \
+ ((dlsize_t)(nr)) << (in)->i_sb->s_blocksize_bits, \
+ __FILE__, __LINE__ )
+
+
+#define DLIMIT_ALLOC_INODE(in) \
+ __dl_alloc_inode((in)->i_sb, (in)->i_xid, __FILE__, __LINE__ )
-#define DLIMIT_FREE_INODE(sb, xid) \
- __dl_free_inode(sb, xid, __FILE__, __LINE__ )
+#define DLIMIT_FREE_INODE(in) \
+ __dl_free_inode((in)->i_sb, (in)->i_xid, __FILE__, __LINE__ )
-#define DLIMIT_ADJUST_BLOCK(sb, xid, fb, rb) \
+#define DLIMIT_ADJUST_BLOCK(sb, xid, fb, rb) \
__dl_adjust_block(sb, xid, fb, rb, __FILE__, __LINE__ )