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
1e2103cb
Commit
1e2103cb
authored
Oct 12, 2015
by
Dave Chinner
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'xfs-misc-fixes-for-4.4-1' into for-next
parents
8a56d7c3
847f9f68
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
41 additions
and
13 deletions
+41
-13
fs/xfs/kmem.c
fs/xfs/kmem.c
+6
-4
fs/xfs/libxfs/xfs_attr_remote.c
fs/xfs/libxfs/xfs_attr_remote.c
+1
-1
fs/xfs/libxfs/xfs_btree.c
fs/xfs/libxfs/xfs_btree.c
+2
-2
fs/xfs/libxfs/xfs_format.h
fs/xfs/libxfs/xfs_format.h
+9
-1
fs/xfs/libxfs/xfs_fs.h
fs/xfs/libxfs/xfs_fs.h
+10
-0
fs/xfs/xfs_buf.c
fs/xfs/xfs_buf.c
+2
-1
fs/xfs/xfs_ioctl.c
fs/xfs/xfs_ioctl.c
+3
-3
fs/xfs/xfs_ioctl32.c
fs/xfs/xfs_ioctl32.c
+1
-1
fs/xfs/xfs_message.c
fs/xfs/xfs_message.c
+7
-0
No files found.
fs/xfs/kmem.c
View file @
1e2103cb
...
...
@@ -55,8 +55,9 @@ kmem_alloc(size_t size, xfs_km_flags_t flags)
return
ptr
;
if
(
!
(
++
retries
%
100
))
xfs_err
(
NULL
,
"possible memory allocation deadlock in %s (mode:0x%x)"
,
__func__
,
lflags
);
"%s(%u) possible memory allocation deadlock size %u in %s (mode:0x%x)"
,
current
->
comm
,
current
->
pid
,
(
unsigned
int
)
size
,
__func__
,
lflags
);
congestion_wait
(
BLK_RW_ASYNC
,
HZ
/
50
);
}
while
(
1
);
}
...
...
@@ -120,8 +121,9 @@ kmem_zone_alloc(kmem_zone_t *zone, xfs_km_flags_t flags)
return
ptr
;
if
(
!
(
++
retries
%
100
))
xfs_err
(
NULL
,
"possible memory allocation deadlock in %s (mode:0x%x)"
,
__func__
,
lflags
);
"%s(%u) possible memory allocation deadlock in %s (mode:0x%x)"
,
current
->
comm
,
current
->
pid
,
__func__
,
lflags
);
congestion_wait
(
BLK_RW_ASYNC
,
HZ
/
50
);
}
while
(
1
);
}
fs/xfs/libxfs/xfs_attr_remote.c
View file @
1e2103cb
...
...
@@ -107,7 +107,7 @@ xfs_attr3_rmt_verify(
if
(
be32_to_cpu
(
rmt
->
rm_bytes
)
>
fsbsize
-
sizeof
(
*
rmt
))
return
false
;
if
(
be32_to_cpu
(
rmt
->
rm_offset
)
+
be32_to_cpu
(
rmt
->
rm_bytes
)
>
XATTR_SIZE_MAX
)
be32_to_cpu
(
rmt
->
rm_bytes
)
>
X
FS_X
ATTR_SIZE_MAX
)
return
false
;
if
(
rmt
->
rm_owner
==
0
)
return
false
;
...
...
fs/xfs/libxfs/xfs_btree.c
View file @
1e2103cb
...
...
@@ -223,7 +223,7 @@ xfs_btree_check_ptr(
* long-form btree header.
*
* Prior to calculting the CRC, pull the LSN out of the buffer log item and put
* it into the buffer so recovery knows what the last modifcation was that made
* it into the buffer so recovery knows what the last modif
i
cation was that made
* it to disk.
*/
void
...
...
@@ -261,7 +261,7 @@ xfs_btree_lblock_verify_crc(
* short-form btree header.
*
* Prior to calculting the CRC, pull the LSN out of the buffer log item and put
* it into the buffer so recovery knows what the last modifcation was that made
* it into the buffer so recovery knows what the last modif
i
cation was that made
* it to disk.
*/
void
...
...
fs/xfs/libxfs/xfs_format.h
View file @
1e2103cb
...
...
@@ -59,6 +59,14 @@ struct xfs_ifork;
#define XFS_SB_VERSION_BORGBIT 0x4000
/* ASCII only case-insens. */
#define XFS_SB_VERSION_MOREBITSBIT 0x8000
/*
* The size of a single extended attribute on disk is limited by
* the size of index values within the attribute entries themselves.
* These are be16 fields, so we can only support attribute data
* sizes up to 2^16 bytes in length.
*/
#define XFS_XATTR_SIZE_MAX (1 << 16)
/*
* Supported feature bit list is just all bits in the versionnum field because
* we've used them all up and understand them all. Except, of course, for the
...
...
@@ -1483,7 +1491,7 @@ struct xfs_acl {
*/
#define XFS_ACL_MAX_ENTRIES(mp) \
(xfs_sb_version_hascrc(&mp->m_sb) \
? (XATTR_SIZE_MAX - sizeof(struct xfs_acl)) / \
? (X
FS_X
ATTR_SIZE_MAX - sizeof(struct xfs_acl)) / \
sizeof(struct xfs_acl_entry) \
: 25)
...
...
fs/xfs/libxfs/xfs_fs.h
View file @
1e2103cb
...
...
@@ -489,6 +489,16 @@ typedef struct xfs_swapext
#define XFS_FSOP_GOING_FLAGS_LOGFLUSH 0x1
/* flush log but not data */
#define XFS_FSOP_GOING_FLAGS_NOLOGFLUSH 0x2
/* don't flush log nor data */
/*
* ioctl limits
*/
#ifdef XATTR_LIST_MAX
# define XFS_XATTR_LIST_MAX XATTR_LIST_MAX
#else
# define XFS_XATTR_LIST_MAX 65536
#endif
/*
* ioctl commands that are used by Linux filesystems
*/
...
...
fs/xfs/xfs_buf.c
View file @
1e2103cb
...
...
@@ -354,7 +354,8 @@ xfs_buf_allocate_memory(
*/
if
(
!
(
++
retries
%
100
))
xfs_err
(
NULL
,
"possible memory allocation deadlock in %s (mode:0x%x)"
,
"%s(%u) possible memory allocation deadlock in %s (mode:0x%x)"
,
current
->
comm
,
current
->
pid
,
__func__
,
gfp_mask
);
XFS_STATS_INC
(
bp
->
b_target
->
bt_mount
,
xb_page_retries
);
...
...
fs/xfs/xfs_ioctl.c
View file @
1e2103cb
...
...
@@ -411,7 +411,7 @@ xfs_attrlist_by_handle(
if
(
copy_from_user
(
&
al_hreq
,
arg
,
sizeof
(
xfs_fsop_attrlist_handlereq_t
)))
return
-
EFAULT
;
if
(
al_hreq
.
buflen
<
sizeof
(
struct
attrlist
)
||
al_hreq
.
buflen
>
XATTR_LIST_MAX
)
al_hreq
.
buflen
>
X
FS_X
ATTR_LIST_MAX
)
return
-
EINVAL
;
/*
...
...
@@ -455,7 +455,7 @@ xfs_attrmulti_attr_get(
unsigned
char
*
kbuf
;
int
error
=
-
EFAULT
;
if
(
*
len
>
XATTR_SIZE_MAX
)
if
(
*
len
>
X
FS_X
ATTR_SIZE_MAX
)
return
-
EINVAL
;
kbuf
=
kmem_zalloc_large
(
*
len
,
KM_SLEEP
);
if
(
!
kbuf
)
...
...
@@ -485,7 +485,7 @@ xfs_attrmulti_attr_set(
if
(
IS_IMMUTABLE
(
inode
)
||
IS_APPEND
(
inode
))
return
-
EPERM
;
if
(
len
>
XATTR_SIZE_MAX
)
if
(
len
>
X
FS_X
ATTR_SIZE_MAX
)
return
-
EINVAL
;
kbuf
=
memdup_user
(
ubuf
,
len
);
...
...
fs/xfs/xfs_ioctl32.c
View file @
1e2103cb
...
...
@@ -356,7 +356,7 @@ xfs_compat_attrlist_by_handle(
sizeof
(
compat_xfs_fsop_attrlist_handlereq_t
)))
return
-
EFAULT
;
if
(
al_hreq
.
buflen
<
sizeof
(
struct
attrlist
)
||
al_hreq
.
buflen
>
XATTR_LIST_MAX
)
al_hreq
.
buflen
>
X
FS_X
ATTR_LIST_MAX
)
return
-
EINVAL
;
/*
...
...
fs/xfs/xfs_message.c
View file @
1e2103cb
...
...
@@ -17,6 +17,7 @@
#include "xfs.h"
#include "xfs_fs.h"
#include "xfs_error.h"
#include "xfs_format.h"
#include "xfs_log_format.h"
#include "xfs_trans_resv.h"
...
...
@@ -43,6 +44,7 @@ void func(const struct xfs_mount *mp, const char *fmt, ...) \
{ \
struct va_format vaf; \
va_list args; \
int level; \
\
va_start(args, fmt); \
\
...
...
@@ -51,6 +53,11 @@ void func(const struct xfs_mount *mp, const char *fmt, ...) \
\
__xfs_printk(kern_level, mp, &vaf); \
va_end(args); \
\
if (!kstrtoint(kern_level, 0, &level) && \
level <= LOGLEVEL_ERR && \
xfs_error_level >= XFS_ERRLEVEL_HIGH) \
xfs_stack_trace(); \
} \
define_xfs_printk_level
(
xfs_emerg
,
KERN_EMERG
);
...
...
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