X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Flinux%2Fvs_dlimit.h;h=c34e68cd5b98c40acc464a29c5bb2a4853b0cdec;hb=97bf2856c6014879bd04983a3e9dfcdac1e7fe85;hp=674262d97b89fff7ab2afb92a44e7d5f2fe15c8d;hpb=64ba3f394c830ec48a1c31b53dcae312c56f1604;p=linux-2.6.git diff --git a/include/linux/vs_dlimit.h b/include/linux/vs_dlimit.h index 674262d97..c34e68cd5 100644 --- a/include/linux/vs_dlimit.h +++ b/include/linux/vs_dlimit.h @@ -1,7 +1,8 @@ -#ifndef _VX_VS_DLIMIT_H -#define _VX_VS_DLIMIT_H +#ifndef _VS_DLIMIT_H +#define _VS_DLIMIT_H #include "vserver/dlimit.h" +#include "vserver/base.h" #include "vserver/debug.h" @@ -13,7 +14,7 @@ static inline struct dl_info *__get_dl_info(struct dl_info *dli, if (!dli) return NULL; vxlprintk(VXD_CBIT(dlim, 4), "get_dl_info(%p[#%d.%d])", - dli, dli?dli->dl_xid:0, dli?atomic_read(&dli->dl_usecnt):0, + dli, dli?dli->dl_tag:0, dli?atomic_read(&dli->dl_usecnt):0, _file, _line); atomic_inc(&dli->dl_usecnt); return dli; @@ -31,7 +32,7 @@ static inline void __put_dl_info(struct dl_info *dli, if (!dli) return; vxlprintk(VXD_CBIT(dlim, 4), "put_dl_info(%p[#%d.%d])", - dli, dli?dli->dl_xid:0, dli?atomic_read(&dli->dl_usecnt):0, + dli, dli?dli->dl_tag:0, dli?atomic_read(&dli->dl_usecnt):0, _file, _line); if (atomic_dec_and_test(&dli->dl_usecnt)) free_dl_info(dli); @@ -41,14 +42,14 @@ static inline void __put_dl_info(struct dl_info *dli, #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) + tag_t tag, dlsize_t nr, const char *file, int line) { struct dl_info *dli = NULL; int ret = 0; if (nr == 0) goto out; - dli = locate_dl_info(sb, xid); + dli = locate_dl_info(sb, tag); if (!dli) goto out; @@ -61,19 +62,19 @@ static inline int __dl_alloc_space(struct super_block *sb, out: vxlprintk(VXD_CBIT(dlim, 1), "ALLOC (%p,#%d)%c %lld bytes (%d)", - sb, xid, __dlimit_char(dli), (long long)nr, + sb, tag, __dlimit_char(dli), (long long)nr, ret, file, line); return ret; } static inline void __dl_free_space(struct super_block *sb, - xid_t xid, dlsize_t nr, const char *_file, int _line) + tag_t tag, dlsize_t nr, const char *_file, int _line) { struct dl_info *dli = NULL; if (nr == 0) goto out; - dli = locate_dl_info(sb, xid); + dli = locate_dl_info(sb, tag); if (!dli) goto out; @@ -87,17 +88,17 @@ static inline void __dl_free_space(struct super_block *sb, out: vxlprintk(VXD_CBIT(dlim, 1), "FREE (%p,#%d)%c %lld bytes", - sb, xid, __dlimit_char(dli), (long long)nr, + sb, tag, __dlimit_char(dli), (long long)nr, _file, _line); } static inline int __dl_alloc_inode(struct super_block *sb, - xid_t xid, const char *_file, int _line) + tag_t tag, const char *_file, int _line) { struct dl_info *dli; int ret = 0; - dli = locate_dl_info(sb, xid); + dli = locate_dl_info(sb, tag); if (!dli) goto out; @@ -105,28 +106,21 @@ static inline int __dl_alloc_inode(struct super_block *sb, ret = (dli->dl_inodes_used >= dli->dl_inodes_total); if (!ret) dli->dl_inodes_used++; -#if 0 - else - vxwprintk("DLIMIT hit (%p,#%d), inode %d>=%d @ %s:%d", - sb, xid, - dli->dl_inodes_used, dli->dl_inodes_total, - file, line); -#endif spin_unlock(&dli->dl_lock); put_dl_info(dli); out: vxlprintk(VXD_CBIT(dlim, 0), "ALLOC (%p,#%d)%c inode (%d)", - sb, xid, __dlimit_char(dli), ret, _file, _line); + sb, tag, __dlimit_char(dli), ret, _file, _line); return ret; } static inline void __dl_free_inode(struct super_block *sb, - xid_t xid, const char *_file, int _line) + tag_t tag, const char *_file, int _line) { struct dl_info *dli; - dli = locate_dl_info(sb, xid); + dli = locate_dl_info(sb, tag); if (!dli) goto out; @@ -140,17 +134,17 @@ static inline void __dl_free_inode(struct super_block *sb, out: vxlprintk(VXD_CBIT(dlim, 0), "FREE (%p,#%d)%c inode", - sb, xid, __dlimit_char(dli), _file, _line); + sb, tag, __dlimit_char(dli), _file, _line); } -static inline void __dl_adjust_block(struct super_block *sb, xid_t xid, - unsigned int *free_blocks, unsigned int *root_blocks, +static inline void __dl_adjust_block(struct super_block *sb, tag_t tag, + unsigned long long *free_blocks, unsigned long long *root_blocks, const char *_file, int _line) { struct dl_info *dli; uint64_t broot, bfree; - dli = locate_dl_info(sb, xid); + dli = locate_dl_info(sb, tag); if (!dli) return; @@ -163,7 +157,7 @@ static inline void __dl_adjust_block(struct super_block *sb, xid_t xid, spin_unlock(&dli->dl_lock); vxlprintk(VXD_CBIT(dlim, 2), - "ADJUST: %lld,%lld on %d,%d [mult=%d]", + "ADJUST: %lld,%lld on %lld,%lld [mult=%d]", (long long)bfree, (long long)broot, *free_blocks, *root_blocks, dli->dl_nrlmult, _file, _line); @@ -179,33 +173,33 @@ static inline void __dl_adjust_block(struct super_block *sb, xid_t xid, } #define DLIMIT_ALLOC_SPACE(in, bytes) \ - __dl_alloc_space((in)->i_sb, (in)->i_xid, (dlsize_t)(bytes), \ + __dl_alloc_space((in)->i_sb, (in)->i_tag, (dlsize_t)(bytes), \ __FILE__, __LINE__ ) #define DLIMIT_FREE_SPACE(in, bytes) \ - __dl_free_space((in)->i_sb, (in)->i_xid, (dlsize_t)(bytes), \ + __dl_free_space((in)->i_sb, (in)->i_tag, (dlsize_t)(bytes), \ __FILE__, __LINE__ ) #define DLIMIT_ALLOC_BLOCK(in, nr) \ - __dl_alloc_space((in)->i_sb, (in)->i_xid, \ + __dl_alloc_space((in)->i_sb, (in)->i_tag, \ ((dlsize_t)(nr)) << (in)->i_sb->s_blocksize_bits, \ __FILE__, __LINE__ ) #define DLIMIT_FREE_BLOCK(in, nr) \ - __dl_free_space((in)->i_sb, (in)->i_xid, \ + __dl_free_space((in)->i_sb, (in)->i_tag, \ ((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__ ) + __dl_alloc_inode((in)->i_sb, (in)->i_tag, __FILE__, __LINE__ ) #define DLIMIT_FREE_INODE(in) \ - __dl_free_inode((in)->i_sb, (in)->i_xid, __FILE__, __LINE__ ) + __dl_free_inode((in)->i_sb, (in)->i_tag, __FILE__, __LINE__ ) -#define DLIMIT_ADJUST_BLOCK(sb, xid, fb, rb) \ - __dl_adjust_block(sb, xid, fb, rb, __FILE__, __LINE__ ) +#define DLIMIT_ADJUST_BLOCK(sb, tag, fb, rb) \ + __dl_adjust_block(sb, tag, fb, rb, __FILE__, __LINE__ ) #else