summaryrefslogtreecommitdiff
path: root/fs/9p/conv.c
diff options
context:
space:
mode:
authorLatchesar Ionkov <lucho@ionkov.net>2006-01-08 01:05:02 -0800
committerLinus Torvalds <torvalds@g5.osdl.org>2006-01-08 20:14:06 -0800
commit1dac06b20dcc8078dab037bd70652c69c67ba672 (patch)
tree34436f474074aa2760604555e3aa9b02df18fce2 /fs/9p/conv.c
parent531b1094b74365dcc55fa464d28a9a2497ae825d (diff)
downloadlinux-3.10-1dac06b20dcc8078dab037bd70652c69c67ba672.tar.gz
linux-3.10-1dac06b20dcc8078dab037bd70652c69c67ba672.tar.bz2
linux-3.10-1dac06b20dcc8078dab037bd70652c69c67ba672.zip
[PATCH] v9fs: handle kthread_create failure, minor bugfixes
- remove unnecessary -ENOMEM assignments - return correct value when buf_check_size for second time in a buffer - handle failures when create_workqueue and kthread_create are called - use kzalloc instead of kmalloc/memset 0 - v9fs_str_copy and v9fs_str_compare were buggy, were used only in one place, correct the logic and move it to the place it is used. Signed-off-by: Latchesar Ionkov <lucho@ionkov.net> Cc: Eric Van Hensbergen <ericvh@ericvh.myip.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs/9p/conv.c')
-rw-r--r--fs/9p/conv.c45
1 files changed, 9 insertions, 36 deletions
diff --git a/fs/9p/conv.c b/fs/9p/conv.c
index f62434d435b..55ccfa10ee9 100644
--- a/fs/9p/conv.c
+++ b/fs/9p/conv.c
@@ -45,37 +45,6 @@ struct cbuf {
unsigned char *ep;
};
-char *v9fs_str_copy(char *buf, int buflen, struct v9fs_str *str)
-{
- int n;
-
- if (buflen < str->len)
- n = buflen;
- else
- n = str->len;
-
- memmove(buf, str->str, n - 1);
-
- return buf;
-}
-
-int v9fs_str_compare(char *buf, struct v9fs_str *str)
-{
- int n, ret;
-
- ret = strncmp(buf, str->str, str->len);
-
- if (!ret) {
- n = strlen(buf);
- if (n < str->len)
- ret = -1;
- else if (n > str->len)
- ret = 1;
- }
-
- return ret;
-}
-
static inline void buf_init(struct cbuf *buf, void *data, int datalen)
{
buf->sp = buf->p = data;
@@ -89,11 +58,14 @@ static inline int buf_check_overflow(struct cbuf *buf)
static inline int buf_check_size(struct cbuf *buf, int len)
{
- if (buf->p + len > buf->ep && buf->p < buf->ep) {
- eprintk(KERN_ERR, "buffer overflow: want %d has %d\n",
- len, (int)(buf->ep - buf->p));
- dump_stack();
- buf->p = buf->ep + 1;
+ if (buf->p + len > buf->ep) {
+ if (buf->p < buf->ep) {
+ eprintk(KERN_ERR, "buffer overflow: want %d has %d\n",
+ len, (int)(buf->ep - buf->p));
+ dump_stack();
+ buf->p = buf->ep + 1;
+ }
+
return 0;
}
@@ -527,6 +499,7 @@ v9fs_create_common(struct cbuf *bufp, u32 size, u8 id)
void v9fs_set_tag(struct v9fs_fcall *fc, u16 tag)
{
+ fc->tag = tag;
*(__le16 *) (fc->sdata + 5) = cpu_to_le16(tag);
}