git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
This commit was manufactured by cvs2svn to create branch 'vserver'.
[linux-2.6.git]
/
fs
/
befs
/
linuxvfs.c
diff --git
a/fs/befs/linuxvfs.c
b/fs/befs/linuxvfs.c
index
68ebd10
..
71aeffb
100644
(file)
--- a/
fs/befs/linuxvfs.c
+++ b/
fs/befs/linuxvfs.c
@@
-64,7
+64,7
@@
static const struct super_operations befs_sops = {
/* slab cache for befs_inode_info objects */
static kmem_cache_t *befs_inode_cachep;
/* slab cache for befs_inode_info objects */
static kmem_cache_t *befs_inode_cachep;
-static
const
struct file_operations befs_dir_operations = {
+static struct file_operations befs_dir_operations = {
.read = generic_read_dir,
.readdir = befs_readdir,
};
.read = generic_read_dir,
.readdir = befs_readdir,
};
@@
-427,8
+427,7
@@
befs_init_inodecache(void)
{
befs_inode_cachep = kmem_cache_create("befs_inode_cache",
sizeof (struct befs_inode_info),
{
befs_inode_cachep = kmem_cache_create("befs_inode_cache",
sizeof (struct befs_inode_info),
- 0, (SLAB_RECLAIM_ACCOUNT|
- SLAB_MEM_SPREAD),
+ 0, SLAB_RECLAIM_ACCOUNT,
init_once, NULL);
if (befs_inode_cachep == NULL) {
printk(KERN_ERR "befs_init_inodecache: "
init_once, NULL);
if (befs_inode_cachep == NULL) {
printk(KERN_ERR "befs_init_inodecache: "
@@
-512,7
+511,11
@@
befs_utf2nls(struct super_block *sb, const char *in,
wchar_t uni;
int unilen, utflen;
char *result;
wchar_t uni;
int unilen, utflen;
char *result;
- int maxlen = in_len; /* The utf8->nls conversion can't make more chars */
+ /* The utf8->nls conversion won't make the final nls string bigger
+ * than the utf one, but if the string is pure ascii they'll have the
+ * same width and an extra char is needed to save the additional \0
+ */
+ int maxlen = in_len + 1;
befs_debug(sb, "---> utf2nls()");
befs_debug(sb, "---> utf2nls()");
@@
-562,7
+565,7
@@
befs_utf2nls(struct super_block *sb, const char *in,
* @sb: Superblock
* @src: Input string buffer in NLS format
* @srclen: Length of input string in bytes
* @sb: Superblock
* @src: Input string buffer in NLS format
* @srclen: Length of input string in bytes
- * @dest: The output string in UTF
-
8 format
+ * @dest: The output string in UTF8 format
* @destlen: Length of the output buffer
*
* Converts input string @src, which is in the format of the loaded NLS map,
* @destlen: Length of the output buffer
*
* Converts input string @src, which is in the format of the loaded NLS map,
@@
-588,7
+591,10
@@
befs_nls2utf(struct super_block *sb, const char *in,
wchar_t uni;
int unilen, utflen;
char *result;
wchar_t uni;
int unilen, utflen;
char *result;
- int maxlen = 3 * in_len;
+ /* There're nls characters that will translate to 3-chars-wide UTF-8
+ * characters, a additional byte is needed to save the final \0
+ * in special cases */
+ int maxlen = (3 * in_len) + 1;
befs_debug(sb, "---> nls2utf()\n");
befs_debug(sb, "---> nls2utf()\n");