Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
bfaa1ea4
Commit
bfaa1ea4
authored
Jan 09, 2004
by
Nathan Scott
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[XFS] Fix build with tracing enabled, couple of portability macros, move externs into headers.
SGI Modid: 2.5.x-xfs:slinx:160245a
parent
1e31c07b
Changes
22
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
215 additions
and
293 deletions
+215
-293
fs/xfs/linux/xfs_linux.h
fs/xfs/linux/xfs_linux.h
+5
-0
fs/xfs/xfs_alloc.c
fs/xfs/xfs_alloc.c
+2
-9
fs/xfs/xfs_alloc.h
fs/xfs/xfs_alloc.h
+7
-17
fs/xfs/xfs_attr.h
fs/xfs/xfs_attr.h
+0
-9
fs/xfs/xfs_attr_sf.h
fs/xfs/xfs_attr_sf.h
+2
-10
fs/xfs/xfs_bmap.c
fs/xfs/xfs_bmap.c
+6
-7
fs/xfs/xfs_bmap_btree.c
fs/xfs/xfs_bmap_btree.c
+7
-5
fs/xfs/xfs_bmap_btree.h
fs/xfs/xfs_bmap_btree.h
+5
-10
fs/xfs/xfs_buf_item.c
fs/xfs/xfs_buf_item.c
+5
-4
fs/xfs/xfs_buf_item.h
fs/xfs/xfs_buf_item.h
+10
-18
fs/xfs/xfs_da_btree.c
fs/xfs/xfs_da_btree.c
+0
-7
fs/xfs/xfs_dfrag.c
fs/xfs/xfs_dfrag.c
+2
-2
fs/xfs/xfs_dir.c
fs/xfs/xfs_dir.c
+47
-43
fs/xfs/xfs_dir.h
fs/xfs/xfs_dir.h
+0
-8
fs/xfs/xfs_dir2_trace.c
fs/xfs/xfs_dir2_trace.c
+64
-47
fs/xfs/xfs_dir2_trace.h
fs/xfs/xfs_dir2_trace.h
+3
-12
fs/xfs/xfs_dir_sf.h
fs/xfs/xfs_dir_sf.h
+5
-15
fs/xfs/xfs_iget.c
fs/xfs/xfs_iget.c
+1
-10
fs/xfs/xfs_inode.c
fs/xfs/xfs_inode.c
+20
-34
fs/xfs/xfs_inode.h
fs/xfs/xfs_inode.h
+17
-9
fs/xfs/xfs_vfsops.c
fs/xfs/xfs_vfsops.c
+0
-13
fs/xfs/xfs_vnodeops.c
fs/xfs/xfs_vnodeops.c
+7
-4
No files found.
fs/xfs/linux/xfs_linux.h
View file @
bfaa1ea4
...
...
@@ -100,6 +100,11 @@ static inline void set_buffer_unwritten_io(struct buffer_head *bh)
#define xfs_inherit_nodump xfs_params.inherit_nodump.val
#define xfs_inherit_noatime xfs_params.inherit_noatim.val
#define current_cpu() smp_processor_id()
#define current_pid() (current->pid)
#define current_fsuid(cred) (current->fsuid)
#define current_fsgid(cred) (current->fsgid)
#define NBPP PAGE_SIZE
#define DPPSHFT (PAGE_SHIFT - 9)
#define NDPP (1 << (PAGE_SHIFT - 9))
...
...
fs/xfs/xfs_alloc.c
View file @
bfaa1ea4
...
...
@@ -54,13 +54,6 @@
#include "xfs_error.h"
#if defined(DEBUG)
/*
* Allocation tracing.
*/
ktrace_t
*
xfs_alloc_trace_buf
;
#endif
#define XFS_ABSDIFF(a,b) (((a) <= (b)) ? ((b) - (a)) : ((a) - (b)))
#define XFSA_FIXUP_BNO_OK 1
...
...
@@ -73,6 +66,8 @@ xfs_alloc_search_busy(xfs_trans_t *tp,
xfs_extlen_t
len
);
#if defined(XFS_ALLOC_TRACE)
ktrace_t
*
xfs_alloc_trace_buf
;
#define TRACE_ALLOC(s,a) \
xfs_alloc_trace_alloc(fname, s, a, __LINE__)
#define TRACE_FREE(s,a,b,x,f) \
...
...
@@ -85,8 +80,6 @@ xfs_alloc_search_busy(xfs_trans_t *tp,
xfs_alloc_trace_busy(fname, s, mp, ag, -1, -1, sl, tp, XFS_ALLOC_KTRACE_UNBUSY, __LINE__)
#define TRACE_BUSYSEARCH(fname,s,ag,agb,l,sl,tp) \
xfs_alloc_trace_busy(fname, s, mp, ag, agb, l, sl, tp, XFS_ALLOC_KTRACE_BUSYSEARCH, __LINE__)
#else
#define TRACE_ALLOC(s,a)
#define TRACE_FREE(s,a,b,x,f)
...
...
fs/xfs/xfs_alloc.h
View file @
bfaa1ea4
...
...
@@ -95,6 +95,13 @@ typedef struct xfs_alloc_arg {
#ifdef __KERNEL__
#if defined(XFS_ALLOC_TRACE)
/*
* Allocation tracing buffer size.
*/
#define XFS_ALLOC_TRACE_SIZE 4096
extern
ktrace_t
*
xfs_alloc_trace_buf
;
/*
* Types for alloc tracing.
*/
...
...
@@ -104,25 +111,8 @@ typedef struct xfs_alloc_arg {
#define XFS_ALLOC_KTRACE_BUSY 4
#define XFS_ALLOC_KTRACE_UNBUSY 5
#define XFS_ALLOC_KTRACE_BUSYSEARCH 6
/*
* Allocation tracing buffer size.
*/
#define XFS_ALLOC_TRACE_SIZE 4096
#ifdef XFS_ALL_TRACE
#define XFS_ALLOC_TRACE
#endif
#if !defined(DEBUG)
#undef XFS_ALLOC_TRACE
#endif
/*
* Prototypes for visible xfs_alloc.c routines
*/
/*
* Compute and fill in value of m_ag_maxlevels.
*/
...
...
fs/xfs/xfs_attr.h
View file @
bfaa1ea4
...
...
@@ -45,15 +45,6 @@
* as possible so as to fit into the literal area of the inode.
*/
#ifdef XFS_ALL_TRACE
#define XFS_ATTR_TRACE
#endif
#if !defined(DEBUG)
#undef XFS_ATTR_TRACE
#endif
/*========================================================================
* External interfaces
*========================================================================*/
...
...
fs/xfs/xfs_attr_sf.h
View file @
bfaa1ea4
...
...
@@ -104,14 +104,7 @@ int xfs_attr_sf_totsize(struct xfs_inode *dp);
(INT_GET(((xfs_attr_shortform_t *)((dp)->i_afp->if_u1.if_data))->hdr.totsize, ARCH_CONVERT))
#endif
#ifdef XFS_ALL_TRACE
#define XFS_ATTR_TRACE
#endif
#if !defined(DEBUG)
#undef XFS_ATTR_TRACE
#endif
#if defined(XFS_ATTR_TRACE)
/*
* Kernel tracing support for attribute lists
*/
...
...
@@ -121,6 +114,7 @@ struct xfs_da_node_entry;
struct
xfs_attr_leafblock
;
#define XFS_ATTR_TRACE_SIZE 4096
/* size of global trace buffer */
extern
ktrace_t
*
xfs_attr_trace_buf
;
/*
* Trace record types.
...
...
@@ -130,8 +124,6 @@ struct xfs_attr_leafblock;
#define XFS_ATTR_KTRACE_L_CB 3
/* context, btree */
#define XFS_ATTR_KTRACE_L_CL 4
/* context, leaf */
#if defined(XFS_ATTR_TRACE)
void
xfs_attr_trace_l_c
(
char
*
where
,
struct
xfs_attr_list_context
*
context
);
void
xfs_attr_trace_l_cn
(
char
*
where
,
struct
xfs_attr_list_context
*
context
,
struct
xfs_da_intnode
*
node
);
...
...
fs/xfs/xfs_bmap.c
View file @
bfaa1ea4
...
...
@@ -68,9 +68,6 @@
#include "xfs_trans_space.h"
#include "xfs_buf_item.h"
#ifdef DEBUG
ktrace_t
*
xfs_bmap_trace_buf
;
#endif
#ifdef XFSDEBUG
STATIC
void
...
...
@@ -404,7 +401,7 @@ xfs_bmap_validate_ret(
#define xfs_bmap_validate_ret(bno,len,flags,mval,onmap,nmap)
#endif
/* DEBUG */
#if defined(
DEBUG) && defined(
XFS_RW_TRACE)
#if defined(XFS_RW_TRACE)
STATIC
void
xfs_bunmap_trace
(
xfs_inode_t
*
ip
,
...
...
@@ -414,7 +411,7 @@ xfs_bunmap_trace(
inst_t
*
ra
);
#else
#define xfs_bunmap_trace(ip, bno, len, flags, ra)
#endif
/*
DEBUG &&
XFS_RW_TRACE */
#endif
/* XFS_RW_TRACE */
STATIC
int
xfs_bmap_count_tree
(
...
...
@@ -3543,6 +3540,8 @@ xfs_bmap_search_extents(
#ifdef XFS_BMAP_TRACE
ktrace_t
*
xfs_bmap_trace_buf
;
/*
* Add a bmap trace buffer entry. Base routine for the others.
*/
...
...
@@ -3722,7 +3721,7 @@ xfs_bmap_worst_indlen(
return
rval
;
}
#if defined(
DEBUG) && defined(
XFS_RW_TRACE)
#if defined(XFS_RW_TRACE)
STATIC
void
xfs_bunmap_trace
(
xfs_inode_t
*
ip
,
...
...
@@ -3742,7 +3741,7 @@ xfs_bunmap_trace(
(
void
*
)(
__psint_t
)((
xfs_dfiloff_t
)
bno
&
0xffffffff
),
(
void
*
)(
__psint_t
)
len
,
(
void
*
)(
__psint_t
)
flags
,
(
void
*
)
(
__psint_t
)
private
.
p_cpuid
,
(
void
*
)
current_cpu
()
,
(
void
*
)
ra
,
(
void
*
)
0
,
(
void
*
)
0
,
...
...
fs/xfs/xfs_bmap_btree.c
View file @
bfaa1ea4
...
...
@@ -81,6 +81,13 @@ STATIC int xfs_bmbt_updkey(xfs_btree_cur_t *, xfs_bmbt_key_t *, int);
#if defined(XFS_BMBT_TRACE)
static
char
ARGS
[]
=
"args"
;
static
char
ENTRY
[]
=
"entry"
;
static
char
ERROR
[]
=
"error"
;
#undef EXIT
static
char
EXIT
[]
=
"exit"
;
/*
* Add a trace buffer entry for the arguments given to the routine,
* generic form.
...
...
@@ -305,11 +312,6 @@ xfs_bmbt_trace_cursor(
xfs_bmbt_trace_argik(fname, c, i, k, __LINE__)
#define XFS_BMBT_TRACE_CURSOR(c,s) \
xfs_bmbt_trace_cursor(fname, c, s, __LINE__)
static
char
ARGS
[]
=
"args"
;
static
char
ENTRY
[]
=
"entry"
;
static
char
ERROR
[]
=
"error"
;
#undef EXIT
static
char
EXIT
[]
=
"exit"
;
#else
#define XFS_BMBT_TRACE_ARGBI(c,b,i)
#define XFS_BMBT_TRACE_ARGBII(c,b,i,j)
...
...
fs/xfs/xfs_bmap_btree.h
View file @
bfaa1ea4
...
...
@@ -435,6 +435,10 @@ int xfs_bmap_sanity_check(struct xfs_mount *mp, xfs_bmbt_block_t *bb,
INT_GET((bb)->bb_numrecs, ARCH_CONVERT) <= (mp)->m_bmap_dmxr[(level) != 0])
#endif
#ifdef __KERNEL__
#if defined(XFS_BMBT_TRACE)
/*
* Trace buffer entry types.
*/
...
...
@@ -449,18 +453,9 @@ int xfs_bmap_sanity_check(struct xfs_mount *mp, xfs_bmbt_block_t *bb,
#define XFS_BMBT_TRACE_SIZE 4096
/* size of global trace buffer */
#define XFS_BMBT_KTRACE_SIZE 32
/* size of per-inode trace buffer */
#if defined(XFS_ALL_TRACE)
#define XFS_BMBT_TRACE
extern
ktrace_t
*
xfs_bmbt_trace_buf
;
#endif
#if !defined(DEBUG)
#undef XFS_BMBT_TRACE
#endif
#ifdef __KERNEL__
/*
* Prototypes for xfs_bmap.c to call.
*/
...
...
fs/xfs/xfs_buf_item.c
View file @
bfaa1ea4
...
...
@@ -1207,13 +1207,14 @@ xfs_buf_item_trace(
(
void
*
)((
unsigned
long
)
bip
->
bli_flags
),
(
void
*
)((
unsigned
long
)
bip
->
bli_recur
),
(
void
*
)((
unsigned
long
)
atomic_read
(
&
bip
->
bli_refcount
)),
(
void
*
)
XFS_BUF_ADDR
(
bp
),
(
void
*
)((
unsigned
long
)
(
0xFFFFFFFF
&
XFS_BUF_ADDR
(
bp
)
>>
32
)),
(
void
*
)((
unsigned
long
)(
0xFFFFFFFF
&
XFS_BUF_ADDR
(
bp
))),
(
void
*
)((
unsigned
long
)
XFS_BUF_COUNT
(
bp
)),
(
void
*
)((
unsigned
long
)(
0xFFFFFFFF
&
(
XFS_BFLAGS
(
bp
)
>>
32
))),
(
void
*
)((
unsigned
long
)(
0xFFFFFFFF
&
XFS_BFLAGS
(
bp
))),
(
void
*
)((
unsigned
long
)
XFS_BUF_BFLAGS
(
bp
)),
XFS_BUF_FSPRIVATE
(
bp
,
void
*
),
XFS_BUF_FSPRIVATE2
(
bp
,
void
*
),
(
void
*
)
((
unsigned
long
)
bp
->
b_pincount
),
(
void
*
)
XFS_BUF_ISPINNED
(
bp
),
(
void
*
)
XFS_BUF_IODONE_FUNC
(
bp
),
(
void
*
)((
unsigned
long
)(
XFS_BUF_VALUSEMA
(
bp
))),
(
void
*
)
bip
->
bli_item
.
li_desc
,
...
...
fs/xfs/xfs_buf_item.h
View file @
bfaa1ea4
...
...
@@ -104,6 +104,15 @@ typedef struct xfs_buf_log_format_t {
struct
xfs_buf
;
struct
ktrace
;
struct
xfs_mount
;
struct
xfs_buf_log_item
;
#if defined(XFS_BLI_TRACE)
#define XFS_BLI_TRACE_SIZE 32
void
xfs_buf_item_trace
(
char
*
,
struct
xfs_buf_log_item
*
);
#else
#define xfs_buf_item_trace(id, bip)
#endif
/*
* This is the in core log item structure used to track information
...
...
@@ -116,7 +125,7 @@ typedef struct xfs_buf_log_item {
unsigned
int
bli_flags
;
/* misc flags */
unsigned
int
bli_recur
;
/* lock recursion count */
atomic_t
bli_refcount
;
/* cnt of tp refs */
#ifdef
DEBUG
#ifdef
XFS_BLI_TRACE
struct
ktrace
*
bli_trace
;
/* event trace buf */
#endif
#ifdef XFS_TRANS_DEBUG
...
...
@@ -137,23 +146,6 @@ typedef struct xfs_buf_cancel {
struct
xfs_buf_cancel
*
bc_next
;
}
xfs_buf_cancel_t
;
#define XFS_BLI_TRACE_SIZE 32
#if defined(XFS_ALL_TRACE)
#define XFS_BLI_TRACE
#endif
#if !defined(DEBUG)
#undef XFS_BLI_TRACE
#endif
#if defined(XFS_BLI_TRACE)
void
xfs_buf_item_trace
(
char
*
,
xfs_buf_log_item_t
*
);
#else
#define xfs_buf_item_trace(id, bip)
#endif
void
xfs_buf_item_init
(
struct
xfs_buf
*
,
struct
xfs_mount
*
);
void
xfs_buf_item_relse
(
struct
xfs_buf
*
);
void
xfs_buf_item_log
(
xfs_buf_log_item_t
*
,
uint
,
uint
);
...
...
fs/xfs/xfs_da_btree.c
View file @
bfaa1ea4
...
...
@@ -66,13 +66,6 @@
#include "xfs_error.h"
#include "xfs_bit.h"
#if defined(XFSDEBUG) && defined(CONFIG_KDB)
#undef xfs_buftrace
#define xfs_buftrace(A,B) \
printk(" xfs_buftrace : %s (0x%p)\n", A, B); \
BUG();
#endif
/*
* xfs_da_btree.c
*
...
...
fs/xfs/xfs_dfrag.c
View file @
bfaa1ea4
...
...
@@ -153,12 +153,12 @@ xfs_swapext(
if
((
error
=
_MAC_XFS_IACCESS
(
tip
,
MACWRITE
,
NULL
)))
{
goto
error0
;
}
if
((
current
->
fsuid
!=
ip
->
i_d
.
di_uid
)
&&
if
((
current
_fsuid
(
cred
)
!=
ip
->
i_d
.
di_uid
)
&&
(
error
=
xfs_iaccess
(
ip
,
S_IWUSR
,
NULL
))
&&
!
capable_cred
(
NULL
,
CAP_FOWNER
))
{
goto
error0
;
}
if
((
current
->
fsuid
!=
tip
->
i_d
.
di_uid
)
&&
if
((
current
_fsuid
(
cred
)
!=
tip
->
i_d
.
di_uid
)
&&
(
error
=
xfs_iaccess
(
tip
,
S_IWUSR
,
NULL
))
&&
!
capable_cred
(
NULL
,
CAP_FOWNER
))
{
goto
error0
;
...
...
fs/xfs/xfs_dir.c
View file @
bfaa1ea4
...
...
@@ -1093,10 +1093,10 @@ void
xfs_dir_trace_g_du
(
char
*
where
,
xfs_inode_t
*
dp
,
uio_t
*
uio
)
{
xfs_dir_trace_enter
(
XFS_DIR_KTRACE_G_DU
,
where
,
(
__psunsigned_t
)
dp
,
(
__psunsigned_t
)
dp
->
i_mount
,
(
__psunsigned_t
)(
uio
->
uio_offset
>>
32
),
(
__psunsigned_t
)(
uio
->
uio_offset
&
0xFFFFFFFF
),
(
__psunsigned_t
)
uio
->
uio_resid
,
(
void
*
)
dp
,
(
void
*
)
dp
->
i_mount
,
(
void
*
)((
unsigned
long
)(
uio
->
uio_offset
>>
32
)
),
(
void
*
)((
unsigned
long
)(
uio
->
uio_offset
&
0xFFFFFFFF
)
),
(
void
*
)
uio
->
uio_resid
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
);
}
...
...
@@ -1107,11 +1107,11 @@ void
xfs_dir_trace_g_dub
(
char
*
where
,
xfs_inode_t
*
dp
,
uio_t
*
uio
,
xfs_dablk_t
bno
)
{
xfs_dir_trace_enter
(
XFS_DIR_KTRACE_G_DUB
,
where
,
(
__psunsigned_t
)
dp
,
(
__psunsigned_t
)
dp
->
i_mount
,
(
__psunsigned_t
)(
uio
->
uio_offset
>>
32
),
(
__psunsigned_t
)(
uio
->
uio_offset
&
0xFFFFFFFF
),
(
__psunsigned_t
)
uio
->
uio_resid
,
(
__psunsigned_t
)
bno
,
(
void
*
)
dp
,
(
void
*
)
dp
->
i_mount
,
(
void
*
)((
unsigned
long
)(
uio
->
uio_offset
>>
32
)
),
(
void
*
)((
unsigned
long
)(
uio
->
uio_offset
&
0xFFFFFFFF
)
),
(
void
*
)
uio
->
uio_resid
,
(
void
*
)
bno
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
);
}
...
...
@@ -1122,15 +1122,17 @@ void
xfs_dir_trace_g_dun
(
char
*
where
,
xfs_inode_t
*
dp
,
uio_t
*
uio
,
xfs_da_intnode_t
*
node
)
{
int
last
=
INT_GET
(
node
->
hdr
.
count
,
ARCH_CONVERT
)
-
1
;
xfs_dir_trace_enter
(
XFS_DIR_KTRACE_G_DUN
,
where
,
(
__psunsigned_t
)
dp
,
(
__psunsigned_t
)
dp
->
i_mount
,
(
__psunsigned_t
)(
uio
->
uio_offset
>>
32
),
(
__psunsigned_t
)(
uio
->
uio_offset
&
0xFFFFFFFF
),
(
__psunsigned_t
)
uio
->
uio_resid
,
(
__psunsigned_t
)
INT_GET
(
node
->
hdr
.
info
.
forw
,
ARCH_CONVERT
),
(
__psunsigned_t
)
INT_GET
(
node
->
hdr
.
count
,
ARCH_CONVERT
),
(
__psunsigned_t
)
INT_GET
(
node
->
btree
[
0
].
hashval
,
ARCH_CONVERT
),
(
__psunsigned_t
)
INT_GET
(
node
->
btree
[
INT_GET
(
node
->
hdr
.
count
,
ARCH_CONVERT
)
-
1
].
hashval
,
ARCH_CONVERT
),
(
void
*
)
dp
,
(
void
*
)
dp
->
i_mount
,
(
void
*
)((
unsigned
long
)(
uio
->
uio_offset
>>
32
)
),
(
void
*
)((
unsigned
long
)(
uio
->
uio_offset
&
0xFFFFFFFF
)
),
(
void
*
)
uio
->
uio_resid
,
(
void
*
)
INT_GET
(
node
->
hdr
.
info
.
forw
,
ARCH_CONVERT
),
(
void
*
)
INT_GET
(
node
->
hdr
.
count
,
ARCH_CONVERT
),
(
void
*
)
INT_GET
(
node
->
btree
[
0
].
hashval
,
ARCH_CONVERT
),
(
void
*
)
INT_GET
(
node
->
btree
[
last
].
hashval
,
ARCH_CONVERT
),
NULL
,
NULL
,
NULL
);
}
...
...
@@ -1141,15 +1143,17 @@ void
xfs_dir_trace_g_dul
(
char
*
where
,
xfs_inode_t
*
dp
,
uio_t
*
uio
,
xfs_dir_leafblock_t
*
leaf
)
{
int
last
=
INT_GET
(
leaf
->
hdr
.
count
,
ARCH_CONVERT
)
-
1
;
xfs_dir_trace_enter
(
XFS_DIR_KTRACE_G_DUL
,
where
,
(
__psunsigned_t
)
dp
,
(
__psunsigned_t
)
dp
->
i_mount
,
(
__psunsigned_t
)(
uio
->
uio_offset
>>
32
),
(
__psunsigned_t
)(
uio
->
uio_offset
&
0xFFFFFFFF
),
(
__psunsigned_t
)
uio
->
uio_resid
,
(
__psunsigned_t
)
INT_GET
(
leaf
->
hdr
.
info
.
forw
,
ARCH_CONVERT
),
(
__psunsigned_t
)
INT_GET
(
leaf
->
hdr
.
count
,
ARCH_CONVERT
),
(
__psunsigned_t
)
INT_GET
(
leaf
->
entries
[
0
].
hashval
,
ARCH_CONVERT
),
(
__psunsigned_t
)
INT_GET
(
leaf
->
entries
[
INT_GET
(
leaf
->
hdr
.
count
,
ARCH_CONVERT
)
-
1
].
hashval
,
ARCH_CONVERT
),
(
void
*
)
dp
,
(
void
*
)
dp
->
i_mount
,
(
void
*
)((
unsigned
long
)(
uio
->
uio_offset
>>
32
)
),
(
void
*
)((
unsigned
long
)(
uio
->
uio_offset
&
0xFFFFFFFF
)
),
(
void
*
)
uio
->
uio_resid
,
(
void
*
)
INT_GET
(
leaf
->
hdr
.
info
.
forw
,
ARCH_CONVERT
),
(
void
*
)
INT_GET
(
leaf
->
hdr
.
count
,
ARCH_CONVERT
),
(
void
*
)
INT_GET
(
leaf
->
entries
[
0
].
hashval
,
ARCH_CONVERT
),
(
void
*
)
INT_GET
(
leaf
->
entries
[
last
].
hashval
,
ARCH_CONVERT
),
NULL
,
NULL
,
NULL
);
}
...
...
@@ -1161,11 +1165,11 @@ xfs_dir_trace_g_due(char *where, xfs_inode_t *dp, uio_t *uio,
xfs_dir_leaf_entry_t
*
entry
)
{
xfs_dir_trace_enter
(
XFS_DIR_KTRACE_G_DUE
,
where
,
(
__psunsigned_t
)
dp
,
(
__psunsigned_t
)
dp
->
i_mount
,
(
__psunsigned_t
)(
uio
->
uio_offset
>>
32
),
(
__psunsigned_t
)(
uio
->
uio_offset
&
0xFFFFFFFF
),
(
__psunsigned_t
)
uio
->
uio_resid
,
(
__psunsigned_t
)
INT_GET
(
entry
->
hashval
,
ARCH_CONVERT
),
(
void
*
)
dp
,
(
void
*
)
dp
->
i_mount
,
(
void
*
)((
unsigned
long
)(
uio
->
uio_offset
>>
32
)
),
(
void
*
)((
unsigned
long
)(
uio
->
uio_offset
&
0xFFFFFFFF
)
),
(
void
*
)
uio
->
uio_resid
,
(
void
*
)
INT_GET
(
entry
->
hashval
,
ARCH_CONVERT
),
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
);
}
...
...
@@ -1176,12 +1180,12 @@ void
xfs_dir_trace_g_duc
(
char
*
where
,
xfs_inode_t
*
dp
,
uio_t
*
uio
,
xfs_off_t
cookie
)
{
xfs_dir_trace_enter
(
XFS_DIR_KTRACE_G_DUC
,
where
,
(
__psunsigned_t
)
dp
,
(
__psunsigned_t
)
dp
->
i_mount
,
(
__psunsigned_t
)(
uio
->
uio_offset
>>
32
),
(
__psunsigned_t
)(
uio
->
uio_offset
&
0xFFFFFFFF
),
(
__psunsigned_t
)
uio
->
uio_resid
,
(
__psunsigned_t
)(
cookie
>>
32
),
(
__psunsigned_t
)(
cookie
&
0xFFFFFFFF
),
(
void
*
)
dp
,
(
void
*
)
dp
->
i_mount
,
(
void
*
)((
unsigned
long
)(
uio
->
uio_offset
>>
32
)
),
(
void
*
)((
unsigned
long
)(
uio
->
uio_offset
&
0xFFFFFFFF
)
),
(
void
*
)
uio
->
uio_resid
,
(
void
*
)((
unsigned
long
)(
cookie
>>
32
)
),
(
void
*
)((
unsigned
long
)(
cookie
&
0xFFFFFFFF
)
),
NULL
,
NULL
,
NULL
,
NULL
,
NULL
);
}
...
...
@@ -1191,15 +1195,15 @@ xfs_dir_trace_g_duc(char *where, xfs_inode_t *dp, uio_t *uio, xfs_off_t cookie)
*/
void
xfs_dir_trace_enter
(
int
type
,
char
*
where
,
__psunsigned_t
a0
,
__psunsigned_t
a1
,
__psunsigned_t
a2
,
__psunsigned_t
a3
,
__psunsigned_t
a4
,
__psunsigned_t
a5
,
__psunsigned_t
a6
,
__psunsigned_t
a7
,
__psunsigned_t
a8
,
__psunsigned_t
a9
,
__psunsigned_t
a10
,
__psunsigned_t
a11
)
void
*
a0
,
void
*
a1
,
void
*
a2
,
void
*
a3
,
void
*
a4
,
void
*
a5
,
void
*
a6
,
void
*
a7
,
void
*
a8
,
void
*
a9
,
void
*
a10
,
void
*
a11
)
{
ASSERT
(
xfs_dir_trace_buf
);
ktrace_enter
(
xfs_dir_trace_buf
,
(
void
*
)((
__psunsigned_t
)
type
),
ktrace_enter
(
xfs_dir_trace_buf
,
(
void
*
)((
void
*
)
type
),
(
void
*
)
where
,
(
void
*
)
a0
,
(
void
*
)
a1
,
(
void
*
)
a2
,
(
void
*
)
a3
,
(
void
*
)
a4
,
(
void
*
)
a5
,
...
...
fs/xfs/xfs_dir.h
View file @
bfaa1ea4
...
...
@@ -43,14 +43,6 @@
* as possible so as to fit into the literal area of the inode.
*/
#ifdef XFS_ALL_TRACE
#define XFS_DIR_TRACE
#endif
#if !defined(DEBUG)
#undef XFS_DIR_TRACE
#endif
/*========================================================================
* Function prototypes for the kernel.
*========================================================================*/
...
...
fs/xfs/xfs_dir2_trace.c
View file @
bfaa1ea4
...
...
@@ -64,36 +64,37 @@ xfs_dir2_trace_enter(
char
*
where
,
char
*
name
,
int
namelen
,
__psunsigned_t
a0
,
__psunsigned_t
a1
,
__psunsigned_t
a2
,
__psunsigned_t
a3
,
__psunsigned_t
a4
,
__psunsigned_t
a5
,
__psunsigned_t
a6
)
void
*
a0
,
void
*
a1
,
void
*
a2
,
void
*
a3
,
void
*
a4
,
void
*
a5
,
void
*
a6
,
void
*
a7
)
{
__psunsigned_t
n
[
6
];
void
*
n
[
5
];
ASSERT
(
xfs_dir2_trace_buf
);
ASSERT
(
dp
->
i_dir_trace
);
if
(
name
)
memcpy
(
n
,
name
,
min
(
sizeof
(
n
),
namelen
));
memcpy
(
n
,
name
,
min
(
(
int
)
sizeof
(
n
),
namelen
));
else
memset
((
char
*
)
n
,
0
,
sizeof
(
n
));
ktrace_enter
(
xfs_dir2_trace_buf
,
(
void
*
)
(
__psunsigned_t
)
type
,
(
void
*
)
where
,
(
void
*
)
type
,
(
void
*
)
where
,
(
void
*
)
a0
,
(
void
*
)
a1
,
(
void
*
)
a2
,
(
void
*
)
a3
,
(
void
*
)
a4
,
(
void
*
)
a5
,
(
void
*
)
a6
,
(
void
*
)
(
__psunsigned_t
)
namelen
,
(
void
*
)
a4
,
(
void
*
)
a5
,
(
void
*
)
a6
,
(
void
*
)
a7
,
(
void
*
)
namelen
,
(
void
*
)
n
[
0
],
(
void
*
)
n
[
1
],
(
void
*
)
n
[
2
],
(
void
*
)
n
[
3
],
(
void
*
)
n
[
4
]
,
(
void
*
)
n
[
5
]
);
(
void
*
)
n
[
3
],
(
void
*
)
n
[
4
]);
ktrace_enter
(
dp
->
i_dir_trace
,
(
void
*
)
(
__psunsigned_t
)
type
,
(
void
*
)
where
,
(
void
*
)
type
,
(
void
*
)
where
,
(
void
*
)
a0
,
(
void
*
)
a1
,
(
void
*
)
a2
,
(
void
*
)
a3
,
(
void
*
)
a4
,
(
void
*
)
a5
,
(
void
*
)
a6
,
(
void
*
)
(
__psunsigned_t
)
namelen
,
(
void
*
)
a4
,
(
void
*
)
a5
,
(
void
*
)
a6
,
(
void
*
)
a7
,
(
void
*
)
namelen
,
(
void
*
)
n
[
0
],
(
void
*
)
n
[
1
],
(
void
*
)
n
[
2
],
(
void
*
)
n
[
3
],
(
void
*
)
n
[
4
]
,
(
void
*
)
n
[
5
]
);
(
void
*
)
n
[
3
],
(
void
*
)
n
[
4
]);
}
void
...
...
@@ -103,9 +104,11 @@ xfs_dir2_trace_args(
{
xfs_dir2_trace_enter
(
args
->
dp
,
XFS_DIR2_KTRACE_ARGS
,
where
,
(
char
*
)
args
->
name
,
(
int
)
args
->
namelen
,
(
__psunsigned_t
)
args
->
hashval
,
(
__psunsigned_t
)
args
->
inumber
,
(
__psunsigned_t
)
args
->
dp
,
(
__psunsigned_t
)
args
->
trans
,
(
__psunsigned_t
)
args
->
justcheck
,
0
,
0
);
(
void
*
)
args
->
hashval
,
(
void
*
)((
unsigned
long
)(
args
->
inumber
>>
32
)),
(
void
*
)((
unsigned
long
)(
args
->
inumber
&
0xFFFFFFFF
)),
(
void
*
)
args
->
dp
,
(
void
*
)
args
->
trans
,
(
void
*
)(
unsigned
long
)
args
->
justcheck
,
NULL
,
NULL
);
}
void
...
...
@@ -116,10 +119,12 @@ xfs_dir2_trace_args_b(
{
xfs_dir2_trace_enter
(
args
->
dp
,
XFS_DIR2_KTRACE_ARGS_B
,
where
,
(
char
*
)
args
->
name
,
(
int
)
args
->
namelen
,
(
__psunsigned_t
)
args
->
hashval
,
(
__psunsigned_t
)
args
->
inumber
,
(
__psunsigned_t
)
args
->
dp
,
(
__psunsigned_t
)
args
->
trans
,
(
__psunsigned_t
)
args
->
justcheck
,
(
__psunsigned_t
)(
bp
?
bp
->
bps
[
0
]
:
NULL
),
0
);
(
void
*
)
args
->
hashval
,
(
void
*
)((
unsigned
long
)(
args
->
inumber
>>
32
)),
(
void
*
)((
unsigned
long
)(
args
->
inumber
&
0xFFFFFFFF
)),
(
void
*
)
args
->
dp
,
(
void
*
)
args
->
trans
,
(
void
*
)(
unsigned
long
)
args
->
justcheck
,
(
void
*
)(
bp
?
bp
->
bps
[
0
]
:
NULL
),
NULL
);
}
void
...
...
@@ -131,11 +136,13 @@ xfs_dir2_trace_args_bb(
{
xfs_dir2_trace_enter
(
args
->
dp
,
XFS_DIR2_KTRACE_ARGS_BB
,
where
,
(
char
*
)
args
->
name
,
(
int
)
args
->
namelen
,
(
__psunsigned_t
)
args
->
hashval
,
(
__psunsigned_t
)
args
->
inumber
,
(
__psunsigned_t
)
args
->
dp
,
(
__psunsigned_t
)
args
->
trans
,
(
__psunsigned_t
)
args
->
justcheck
,
(
__psunsigned_t
)(
lbp
?
lbp
->
bps
[
0
]
:
NULL
),
(
__psunsigned_t
)(
dbp
?
dbp
->
bps
[
0
]
:
NULL
));
(
void
*
)
args
->
hashval
,
(
void
*
)((
unsigned
long
)(
args
->
inumber
>>
32
)),
(
void
*
)((
unsigned
long
)(
args
->
inumber
&
0xFFFFFFFF
)),
(
void
*
)
args
->
dp
,
(
void
*
)
args
->
trans
,
(
void
*
)(
unsigned
long
)
args
->
justcheck
,
(
void
*
)(
lbp
?
lbp
->
bps
[
0
]
:
NULL
),
(
void
*
)(
dbp
?
dbp
->
bps
[
0
]
:
NULL
));
}
void
...
...
@@ -150,10 +157,10 @@ xfs_dir2_trace_args_bibii(
{
xfs_dir2_trace_enter
(
args
->
dp
,
XFS_DIR2_KTRACE_ARGS_BIBII
,
where
,
(
char
*
)
args
->
name
,
(
int
)
args
->
namelen
,
(
__psunsigned_t
)
args
->
dp
,
(
__psunsigned_t
)
args
->
trans
,
(
__psunsigned_t
)(
bs
?
bs
->
bps
[
0
]
:
NULL
),
(
__psunsigned_t
)
ss
,
(
__psunsigned_t
)(
bd
?
bd
->
bps
[
0
]
:
NULL
),
(
__psunsigned_t
)
sd
,
(
__psunsigned_t
)
c
);
(
void
*
)
args
->
dp
,
(
void
*
)
args
->
trans
,
(
void
*
)(
bs
?
bs
->
bps
[
0
]
:
NULL
),
(
void
*
)
ss
,
(
void
*
)(
bd
?
bd
->
bps
[
0
]
:
NULL
),
(
void
*
)
sd
,
(
void
*
)
c
,
NULL
);
}
void
...
...
@@ -165,10 +172,12 @@ xfs_dir2_trace_args_db(
{
xfs_dir2_trace_enter
(
args
->
dp
,
XFS_DIR2_KTRACE_ARGS_DB
,
where
,
(
char
*
)
args
->
name
,
(
int
)
args
->
namelen
,
(
__psunsigned_t
)
args
->
hashval
,
(
__psunsigned_t
)
args
->
inumber
,
(
__psunsigned_t
)
args
->
dp
,
(
__psunsigned_t
)
args
->
trans
,
(
__psunsigned_t
)
args
->
justcheck
,
(
__psunsigned_t
)
db
,
(
__psunsigned_t
)(
bp
?
bp
->
bps
[
0
]
:
NULL
));
(
void
*
)
args
->
hashval
,
(
void
*
)((
unsigned
long
)(
args
->
inumber
>>
32
)),
(
void
*
)((
unsigned
long
)(
args
->
inumber
&
0xFFFFFFFF
)),
(
void
*
)
args
->
dp
,
(
void
*
)
args
->
trans
,
(
void
*
)(
unsigned
long
)
args
->
justcheck
,
(
void
*
)
db
,
(
void
*
)(
bp
?
bp
->
bps
[
0
]
:
NULL
));
}
void
...
...
@@ -179,9 +188,13 @@ xfs_dir2_trace_args_i(
{
xfs_dir2_trace_enter
(
args
->
dp
,
XFS_DIR2_KTRACE_ARGS_I
,
where
,
(
char
*
)
args
->
name
,
(
int
)
args
->
namelen
,
(
__psunsigned_t
)
args
->
hashval
,
(
__psunsigned_t
)
args
->
inumber
,
(
__psunsigned_t
)
args
->
dp
,
(
__psunsigned_t
)
args
->
trans
,
(
__psunsigned_t
)
args
->
justcheck
,
(
__psunsigned_t
)
i
,
0
);
(
void
*
)
args
->
hashval
,
(
void
*
)((
unsigned
long
)(
args
->
inumber
>>
32
)),
(
void
*
)((
unsigned
long
)(
args
->
inumber
&
0xFFFFFFFF
)),
(
void
*
)
args
->
dp
,
(
void
*
)
args
->
trans
,
(
void
*
)(
unsigned
long
)
args
->
justcheck
,
(
void
*
)((
unsigned
long
)(
i
>>
32
)),
(
void
*
)((
unsigned
long
)(
i
&
0xFFFFFFFF
)));
}
void
...
...
@@ -192,9 +205,11 @@ xfs_dir2_trace_args_s(
{
xfs_dir2_trace_enter
(
args
->
dp
,
XFS_DIR2_KTRACE_ARGS_S
,
where
,
(
char
*
)
args
->
name
,
(
int
)
args
->
namelen
,
(
__psunsigned_t
)
args
->
hashval
,
(
__psunsigned_t
)
args
->
inumber
,
(
__psunsigned_t
)
args
->
dp
,
(
__psunsigned_t
)
args
->
trans
,
(
__psunsigned_t
)
args
->
justcheck
,
(
__psunsigned_t
)
s
,
0
);
(
void
*
)
args
->
hashval
,
(
void
*
)((
unsigned
long
)(
args
->
inumber
>>
32
)),
(
void
*
)((
unsigned
long
)(
args
->
inumber
&
0xFFFFFFFF
)),
(
void
*
)
args
->
dp
,
(
void
*
)
args
->
trans
,
(
void
*
)(
unsigned
long
)
args
->
justcheck
,
(
void
*
)
s
,
0
);
}
void
...
...
@@ -206,9 +221,11 @@ xfs_dir2_trace_args_sb(
{
xfs_dir2_trace_enter
(
args
->
dp
,
XFS_DIR2_KTRACE_ARGS_SB
,
where
,
(
char
*
)
args
->
name
,
(
int
)
args
->
namelen
,
(
__psunsigned_t
)
args
->
hashval
,
(
__psunsigned_t
)
args
->
inumber
,
(
__psunsigned_t
)
args
->
dp
,
(
__psunsigned_t
)
args
->
trans
,
(
__psunsigned_t
)
args
->
justcheck
,
(
__psunsigned_t
)
s
,
(
__psunsigned_t
)(
bp
?
bp
->
bps
[
0
]
:
NULL
));
(
void
*
)
args
->
hashval
,
(
void
*
)((
unsigned
long
)(
args
->
inumber
>>
32
)),
(
void
*
)((
unsigned
long
)(
args
->
inumber
&
0xFFFFFFFF
)),
(
void
*
)
args
->
dp
,
(
void
*
)
args
->
trans
,
(
void
*
)(
unsigned
long
)
args
->
justcheck
,
(
void
*
)
s
,
(
void
*
)(
bp
?
bp
->
bps
[
0
]
:
NULL
));
}
#endif
/* XFS_DIR2_TRACE */
fs/xfs/xfs_dir2_trace.h
View file @
bfaa1ea4
...
...
@@ -36,20 +36,15 @@
* Tracing for xfs v2 directories.
*/
#if defined(XFS_DIR2_TRACE)
struct
ktrace
;
struct
xfs_dabuf
;
struct
xfs_da_args
;
#ifdef XFS_ALL_TRACE
#define XFS_DIR2_TRACE
#endif
/* XFS_ALL_TRACE */
#if !defined(DEBUG)
#undef XFS_DIR2_TRACE
#endif
/* !DEBUG */
#define XFS_DIR2_GTRACE_SIZE 4096
/* global buffer */
#define XFS_DIR2_KTRACE_SIZE 32
/* per-inode buffer */
extern
struct
ktrace
*
xfs_dir2_trace_buf
;
#define XFS_DIR2_KTRACE_ARGS 1
/* args only */
#define XFS_DIR2_KTRACE_ARGS_B 2
/* args + buffer */
...
...
@@ -60,8 +55,6 @@ struct xfs_da_args;
#define XFS_DIR2_KTRACE_ARGS_SB 7
/* args, int, buffer */
#define XFS_DIR2_KTRACE_ARGS_BIBII 8
/* args, buf/int/buf/int/int */
#ifdef XFS_DIR2_TRACE
void
xfs_dir2_trace_args
(
char
*
where
,
struct
xfs_da_args
*
args
);
void
xfs_dir2_trace_args_b
(
char
*
where
,
struct
xfs_da_args
*
args
,
struct
xfs_dabuf
*
bp
);
...
...
@@ -90,6 +83,4 @@ void xfs_dir2_trace_args_sb(char *where, struct xfs_da_args *args, int s,
#endif
/* XFS_DIR2_TRACE */
extern
struct
ktrace
*
xfs_dir2_trace_buf
;
#endif
/* __XFS_DIR2_TRACE_H__ */
fs/xfs/xfs_dir_sf.h
View file @
bfaa1ea4
...
...
@@ -126,13 +126,7 @@ int xfs_dir_sf_allfit(int count, int totallen);
((uint)sizeof(xfs_dir_sf_entry_t)-1)*(count) + (totallen))
#endif
#ifdef XFS_ALL_TRACE
#define XFS_DIR_TRACE
#endif
#if !defined(DEBUG)
#undef XFS_DIR_TRACE
#endif
#if defined(XFS_DIR_TRACE)
/*
* Kernel tracing support for directories.
...
...
@@ -145,6 +139,7 @@ struct xfs_dir_leafblock;
struct
xfs_dir_leaf_entry
;
#define XFS_DIR_TRACE_SIZE 4096
/* size of global trace buffer */
extern
ktrace_t
*
xfs_dir_trace_buf
;
/*
* Trace record types.
...
...
@@ -156,8 +151,6 @@ struct xfs_dir_leaf_entry;
#define XFS_DIR_KTRACE_G_DUE 5
/* dp, uio, leaf entry */
#define XFS_DIR_KTRACE_G_DUC 6
/* dp, uio, cookie */
#if defined(XFS_DIR_TRACE)
void
xfs_dir_trace_g_du
(
char
*
where
,
struct
xfs_inode
*
dp
,
struct
uio
*
uio
);
void
xfs_dir_trace_g_dub
(
char
*
where
,
struct
xfs_inode
*
dp
,
struct
uio
*
uio
,
xfs_dablk_t
bno
);
...
...
@@ -170,12 +163,9 @@ void xfs_dir_trace_g_due(char *where, struct xfs_inode *dp, struct uio *uio,
void
xfs_dir_trace_g_duc
(
char
*
where
,
struct
xfs_inode
*
dp
,
struct
uio
*
uio
,
xfs_off_t
cookie
);
void
xfs_dir_trace_enter
(
int
type
,
char
*
where
,
__psunsigned_t
a0
,
__psunsigned_t
a1
,
__psunsigned_t
a2
,
__psunsigned_t
a3
,
__psunsigned_t
a4
,
__psunsigned_t
a5
,
__psunsigned_t
a6
,
__psunsigned_t
a7
,
__psunsigned_t
a8
,
__psunsigned_t
a9
,
__psunsigned_t
a10
,
__psunsigned_t
a11
);
void
*
a0
,
void
*
a1
,
void
*
a2
,
void
*
a3
,
void
*
a4
,
void
*
a5
,
void
*
a6
,
void
*
a7
,
void
*
a8
,
void
*
a9
,
void
*
a10
,
void
*
a11
);
#else
#define xfs_dir_trace_g_du(w,d,u)
#define xfs_dir_trace_g_dub(w,d,u,b)
...
...
fs/xfs/xfs_iget.c
View file @
bfaa1ea4
...
...
@@ -506,9 +506,6 @@ xfs_inode_lock_init(
mrlock_init
(
&
ip
->
i_lock
,
MRLOCK_ALLOW_EQUAL_PRI
|
MRLOCK_BARRIER
,
"xfsino"
,
(
long
)
vp
->
v_number
);
mrlock_init
(
&
ip
->
i_iolock
,
MRLOCK_BARRIER
,
"xfsio"
,
vp
->
v_number
);
#ifdef NOTYET
mutex_init
(
&
ip
->
i_range_lock
.
r_spinlock
,
MUTEX_SPIN
,
"xrange"
);
#endif
/* NOTYET */
init_waitqueue_head
(
&
ip
->
i_ipin_wait
);
atomic_set
(
&
ip
->
i_pincount
,
0
);
init_sema
(
&
ip
->
i_flock
,
1
,
"xfsfino"
,
vp
->
v_number
);
...
...
@@ -830,9 +827,7 @@ xfs_ilock(xfs_inode_t *ip,
}
else
if
(
lock_flags
&
XFS_ILOCK_SHARED
)
{
mraccess
(
&
ip
->
i_lock
);
}
#ifdef XFS_ILOCK_TRACE
xfs_ilock_trace
(
ip
,
1
,
lock_flags
,
(
inst_t
*
)
return_address
);
#endif
xfs_ilock_trace
(
ip
,
1
,
lock_flags
,
(
inst_t
*
)
__return_address
);
}
/*
...
...
@@ -895,9 +890,7 @@ xfs_ilock_nowait(xfs_inode_t *ip,
return
0
;
}
}
#ifdef XFS_ILOCK_TRACE
xfs_ilock_trace
(
ip
,
2
,
lock_flags
,
(
inst_t
*
)
__return_address
);
#endif
return
1
;
}
...
...
@@ -955,9 +948,7 @@ xfs_iunlock(xfs_inode_t *ip,
(
xfs_log_item_t
*
)(
ip
->
i_itemp
));
}
}
#ifdef XFS_ILOCK_TRACE
xfs_ilock_trace
(
ip
,
3
,
lock_flags
,
(
inst_t
*
)
__return_address
);
#endif
}
/*
...
...
fs/xfs/xfs_inode.c
View file @
bfaa1ea4
...
...
@@ -908,9 +908,6 @@ xfs_iread(
#ifdef XFS_RW_TRACE
ip
->
i_rwtrace
=
ktrace_alloc
(
XFS_RW_KTRACE_SIZE
,
KM_SLEEP
);
#endif
#ifdef XFS_STRAT_TRACE
ip
->
i_strat_trace
=
ktrace_alloc
(
XFS_STRAT_KTRACE_SIZE
,
KM_SLEEP
);
#endif
#ifdef XFS_ILOCK_TRACE
ip
->
i_lock_trace
=
ktrace_alloc
(
XFS_ILOCK_KTRACE_SIZE
,
KM_SLEEP
);
#endif
...
...
@@ -1144,8 +1141,8 @@ xfs_ialloc(
ip
->
i_d
.
di_onlink
=
0
;
ip
->
i_d
.
di_nlink
=
nlink
;
ASSERT
(
ip
->
i_d
.
di_nlink
==
nlink
);
ip
->
i_d
.
di_uid
=
current
->
fsuid
;
ip
->
i_d
.
di_gid
=
current
->
fsgid
;
ip
->
i_d
.
di_uid
=
current
_fsuid
(
cr
)
;
ip
->
i_d
.
di_gid
=
current
_fsgid
(
cr
)
;
ip
->
i_d
.
di_projid
=
prid
;
memset
(
&
(
ip
->
i_d
.
di_pad
[
0
]),
0
,
sizeof
(
ip
->
i_d
.
di_pad
));
...
...
@@ -1362,16 +1359,16 @@ xfs_itrunc_trace(
ktrace_enter
(
ip
->
i_rwtrace
,
(
void
*
)((
long
)
tag
),
(
void
*
)
ip
,
(
void
*
)((
ip
->
i_d
.
di_size
>>
32
)
&
0xffffffff
),
(
void
*
)(
ip
->
i_d
.
di_size
&
0xffffffff
),
(
void
*
)(
unsigned
long
)(
(
ip
->
i_d
.
di_size
>>
32
)
&
0xffffffff
),
(
void
*
)(
unsigned
long
)(
ip
->
i_d
.
di_size
&
0xffffffff
),
(
void
*
)((
long
)
flag
),
(
void
*
)((
new_size
>>
32
)
&
0xffffffff
),
(
void
*
)(
new_size
&
0xffffffff
),
(
void
*
)((
toss_start
>>
32
)
&
0xffffffff
),
(
void
*
)(
toss_start
&
0xffffffff
),
(
void
*
)((
toss_finish
>>
32
)
&
0xffffffff
),
(
void
*
)(
toss_finish
&
0xffffffff
),
(
void
*
)
((
long
)
private
.
p_cpuid
),
(
void
*
)(
unsigned
long
)(
(
new_size
>>
32
)
&
0xffffffff
),
(
void
*
)(
unsigned
long
)(
new_size
&
0xffffffff
),
(
void
*
)(
unsigned
long
)(
(
toss_start
>>
32
)
&
0xffffffff
),
(
void
*
)(
unsigned
long
)(
toss_start
&
0xffffffff
),
(
void
*
)(
unsigned
long
)(
(
toss_finish
>>
32
)
&
0xffffffff
),
(
void
*
)(
unsigned
long
)(
toss_finish
&
0xffffffff
),
(
void
*
)
current_cpu
(
),
(
void
*
)
0
,
(
void
*
)
0
,
(
void
*
)
0
,
...
...
@@ -2755,17 +2752,8 @@ xfs_idestroy(
}
if
(
ip
->
i_afp
)
xfs_idestroy_fork
(
ip
,
XFS_ATTR_FORK
);
#ifdef NOTYET
if
(
ip
->
i_range_lock
.
r_sleep
!=
NULL
)
{
freesema
(
ip
->
i_range_lock
.
r_sleep
);
kmem_free
(
ip
->
i_range_lock
.
r_sleep
,
sizeof
(
sema_t
));
}
#endif
/* NOTYET */
mrfree
(
&
ip
->
i_lock
);
mrfree
(
&
ip
->
i_iolock
);
#ifdef NOTYET
mutex_destroy
(
&
ip
->
i_range_lock
.
r_spinlock
);
#endif
/* NOTYET */
freesema
(
&
ip
->
i_flock
);
#ifdef XFS_BMAP_TRACE
ktrace_free
(
ip
->
i_xtrace
);
...
...
@@ -2776,9 +2764,6 @@ xfs_idestroy(
#ifdef XFS_RW_TRACE
ktrace_free
(
ip
->
i_rwtrace
);
#endif
#ifdef XFS_STRAT_TRACE
ktrace_free
(
ip
->
i_strat_trace
);
#endif
#ifdef XFS_ILOCK_TRACE
ktrace_free
(
ip
->
i_lock_trace
);
#endif
...
...
@@ -3707,7 +3692,7 @@ xfs_iaccess(
if
((
error
=
_ACL_XFS_IACCESS
(
ip
,
mode
,
cr
))
!=
-
1
)
return
error
?
XFS_ERROR
(
error
)
:
0
;
if
(
current
->
fsuid
!=
ip
->
i_d
.
di_uid
)
{
if
(
current
_fsuid
(
cr
)
!=
ip
->
i_d
.
di_uid
)
{
mode
>>=
3
;
if
(
!
in_group_p
((
gid_t
)
ip
->
i_d
.
di_gid
))
mode
>>=
3
;
...
...
@@ -3859,17 +3844,18 @@ xfs_ichgtime(xfs_inode_t *ip,
}
#ifdef XFS_ILOCK_TRACE
ktrace_t
*
xfs_ilock_trace_buf
;
void
xfs_ilock_trace
(
xfs_inode_t
*
ip
,
int
lock
,
unsigned
int
lockflags
,
inst_t
*
ra
)
{
ktrace_enter
(
ip
->
i_lock_trace
,
(
void
*
)
ip
,
(
void
*
)(
__psint_t
)
lock
,
/* 1 = LOCK, 3=UNLOCK, etc */
(
void
*
)
(
__psint_t
)
lockflags
,
/* XFS_ILOCK_EXCL etc */
(
void
*
)
ra
,
/* caller of ilock */
(
void
*
)
(
__psint_t
)
cpuid
(),
(
void
*
)
(
__psint_t
)
current_pid
(),
(
void
*
)
lock
,
/* 1 = LOCK, 3=UNLOCK, etc */
(
void
*
)
lockflags
,
/* XFS_ILOCK_EXCL etc */
(
void
*
)
ra
,
/* caller of ilock */
(
void
*
)
current_cpu
(),
(
void
*
)
current_pid
(),
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
);
}
#endif
/* ILOCK_TRACE */
#endif
fs/xfs/xfs_inode.h
View file @
bfaa1ea4
...
...
@@ -99,6 +99,13 @@ struct xfs_mount;
struct
xfs_trans
;
struct
xfs_dquot
;
#if defined(XFS_ILOCK_TRACE)
#define XFS_ILOCK_KTRACE_SIZE 32
extern
ktrace_t
*
xfs_ilock_trace_buf
;
extern
void
xfs_ilock_trace
(
struct
xfs_inode
*
,
int
,
unsigned
int
,
inst_t
*
);
#else
#define xfs_ilock_trace(i,n,f,ra)
#endif
/*
* This structure is used to communicate which extents of a file
...
...
@@ -280,15 +287,22 @@ typedef struct xfs_inode {
struct
xfs_inode
*
i_cnext
;
/* cluster hash link forward */
struct
xfs_inode
*
i_cprev
;
/* cluster hash link backward */
#ifdef DEBUG
/* Trace buffers per inode. */
#ifdef XFS_BMAP_TRACE
struct
ktrace
*
i_xtrace
;
/* inode extent list trace */
#endif
#ifdef XFS_BMBT_TRACE
struct
ktrace
*
i_btrace
;
/* inode bmap btree trace */
#endif
#ifdef XFS_RW_TRACE
struct
ktrace
*
i_rwtrace
;
/* inode read/write trace */
struct
ktrace
*
i_strat_trace
;
/* inode strat_write trace */
#endif
#ifdef XFS_ILOCK_TRACE
struct
ktrace
*
i_lock_trace
;
/* inode lock/unlock trace */
#endif
#ifdef XFS_DIR2_TRACE
struct
ktrace
*
i_dir_trace
;
/* inode directory trace */
#endif
/* DEBUG */
#endif
}
xfs_inode_t
;
#endif
/* __KERNEL__ */
...
...
@@ -536,12 +550,6 @@ extern struct kmem_zone *xfs_inode_zone;
extern
struct
kmem_zone
*
xfs_ili_zone
;
extern
struct
vnodeops
xfs_vnodeops
;
#ifdef XFS_ILOCK_TRACE
#define XFS_ILOCK_KTRACE_SIZE 32
void
xfs_ilock_trace
(
xfs_inode_t
*
ip
,
int
lock
,
unsigned
int
lockflags
,
inst_t
*
ra
);
#endif
#endif
/* __KERNEL__ */
#endif
/* __XFS_INODE_H__ */
fs/xfs/xfs_vfsops.c
View file @
bfaa1ea4
...
...
@@ -74,24 +74,11 @@ STATIC int xfs_sync(bhv_desc_t *, int, cred_t *);
int
xfs_init
(
void
)
{
extern
kmem_zone_t
*
xfs_da_state_zone
;
extern
kmem_zone_t
*
xfs_bmap_free_item_zone
;
extern
kmem_zone_t
*
xfs_btree_cur_zone
;
extern
kmem_zone_t
*
xfs_inode_zone
;
extern
kmem_zone_t
*
xfs_chashlist_zone
;
extern
kmem_zone_t
*
xfs_trans_zone
;
extern
kmem_zone_t
*
xfs_buf_item_zone
;
extern
kmem_zone_t
*
xfs_efd_zone
;
extern
kmem_zone_t
*
xfs_efi_zone
;
extern
kmem_zone_t
*
xfs_dabuf_zone
;
#ifdef DEBUG_NOT
extern
ktrace_t
*
xfs_alloc_trace_buf
;
extern
ktrace_t
*
xfs_bmap_trace_buf
;
extern
ktrace_t
*
xfs_bmbt_trace_buf
;
extern
ktrace_t
*
xfs_dir_trace_buf
;
extern
ktrace_t
*
xfs_attr_trace_buf
;
extern
ktrace_t
*
xfs_dir2_trace_buf
;
#endif
/* DEBUG */
#ifdef XFS_DABUF_DEBUG
extern
lock_t
xfs_dabuf_global_lock
;
spinlock_init
(
&
xfs_dabuf_global_lock
,
"xfsda"
);
...
...
fs/xfs/xfs_vnodeops.c
View file @
bfaa1ea4
...
...
@@ -430,7 +430,7 @@ xfs_setattr(
}
/* boolean: are we the file owner? */
file_owner
=
(
current
->
fsuid
==
ip
->
i_d
.
di_uid
);
file_owner
=
(
current
_fsuid
(
credp
)
==
ip
->
i_d
.
di_uid
);
/*
* Change various properties of a file.
...
...
@@ -2000,7 +2000,8 @@ xfs_create(
/*
* Make sure that we have allocated dquot(s) on disk.
*/
error
=
XFS_QM_DQVOPALLOC
(
mp
,
dp
,
current
->
fsuid
,
current
->
fsgid
,
error
=
XFS_QM_DQVOPALLOC
(
mp
,
dp
,
current_fsuid
(
credp
),
current_fsgid
(
credp
),
XFS_QMOPT_QUOTALL
|
XFS_QMOPT_INHERIT
,
&
udqp
,
&
gdqp
);
if
(
error
)
goto
std_return
;
...
...
@@ -2895,7 +2896,8 @@ xfs_mkdir(
/*
* Make sure that we have allocated dquot(s) on disk.
*/
error
=
XFS_QM_DQVOPALLOC
(
mp
,
dp
,
current
->
fsuid
,
current
->
fsgid
,
error
=
XFS_QM_DQVOPALLOC
(
mp
,
dp
,
current_fsuid
(
credp
),
current_fsgid
(
credp
),
XFS_QMOPT_QUOTALL
|
XFS_QMOPT_INHERIT
,
&
udqp
,
&
gdqp
);
if
(
error
)
goto
std_return
;
...
...
@@ -3452,7 +3454,8 @@ xfs_symlink(
/*
* Make sure that we have allocated dquot(s) on disk.
*/
error
=
XFS_QM_DQVOPALLOC
(
mp
,
dp
,
current
->
fsuid
,
current
->
fsgid
,
error
=
XFS_QM_DQVOPALLOC
(
mp
,
dp
,
current_fsuid
(
credp
),
current_fsgid
(
credp
),
XFS_QMOPT_QUOTALL
|
XFS_QMOPT_INHERIT
,
&
udqp
,
&
gdqp
);
if
(
error
)
goto
std_return
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment