diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-27 21:29:53 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-27 21:29:53 -0400 |
commit | fa453a625de5b8ee9ada0a5b329df3f88751c615 (patch) | |
tree | 7a9e04d4a44bb929e96bd9bebb7b97cb733d1ecb /fs/hostfs | |
parent | 30eebb54b13ef198a3f1a143ee9dd68f295c60de (diff) | |
parent | 3463ff4439661d8107ac024329b5fe01d6e5117b (diff) |
Merge branch 'for-linus-3.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml
Pull UML changes from Richard Weinberger:
"Mostly bug fixes and cleanups"
* 'for-linus-3.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml: (35 commits)
um: Update defconfig
um: Switch to large mcmodel on x86_64
MTD: Relax dependencies
um: Wire CONFIG_GENERIC_IO up
um: Serve io_remap_pfn_range()
Introduce CONFIG_GENERIC_IO
um: allow SUBARCH=x86
um: most of the SUBARCH uses can be killed
um: deadlock in line_write_interrupt()
um: don't bother trying to rebuild CHECKFLAGS for USER_OBJS
um: use the right ifdef around exports in user_syms.c
um: a bunch of headers can be killed by using generic-y
um: ptrace-generic.h doesn't need user.h
um: kill HOST_TASK_PID
um: remove pointless include of asm/fixmap.h from asm/pgtable.h
um: asm-offsets.h might as well come from underlying arch...
um: merge processor_{32,64}.h a bit...
um: switch close_chan() to struct line
um: race fix: initialize delayed_work *before* registering IRQ
um: line->have_irq is never checked...
...
Diffstat (limited to 'fs/hostfs')
-rw-r--r-- | fs/hostfs/hostfs.h | 3 | ||||
-rw-r--r-- | fs/hostfs/hostfs_kern.c | 5 | ||||
-rw-r--r-- | fs/hostfs/hostfs_user.c | 4 |
3 files changed, 8 insertions, 4 deletions
diff --git a/fs/hostfs/hostfs.h b/fs/hostfs/hostfs.h index 3cbfa93cd782..1fe731337f07 100644 --- a/fs/hostfs/hostfs.h +++ b/fs/hostfs/hostfs.h | |||
@@ -67,7 +67,8 @@ extern int access_file(char *path, int r, int w, int x); | |||
67 | extern int open_file(char *path, int r, int w, int append); | 67 | extern int open_file(char *path, int r, int w, int append); |
68 | extern void *open_dir(char *path, int *err_out); | 68 | extern void *open_dir(char *path, int *err_out); |
69 | extern char *read_dir(void *stream, unsigned long long *pos, | 69 | extern char *read_dir(void *stream, unsigned long long *pos, |
70 | unsigned long long *ino_out, int *len_out); | 70 | unsigned long long *ino_out, int *len_out, |
71 | unsigned int *type_out); | ||
71 | extern void close_file(void *stream); | 72 | extern void close_file(void *stream); |
72 | extern int replace_file(int oldfd, int fd); | 73 | extern int replace_file(int oldfd, int fd); |
73 | extern void close_dir(void *stream); | 74 | extern void close_dir(void *stream); |
diff --git a/fs/hostfs/hostfs_kern.c b/fs/hostfs/hostfs_kern.c index 588d45885a6f..07c516bfea76 100644 --- a/fs/hostfs/hostfs_kern.c +++ b/fs/hostfs/hostfs_kern.c | |||
@@ -283,6 +283,7 @@ int hostfs_readdir(struct file *file, void *ent, filldir_t filldir) | |||
283 | char *name; | 283 | char *name; |
284 | unsigned long long next, ino; | 284 | unsigned long long next, ino; |
285 | int error, len; | 285 | int error, len; |
286 | unsigned int type; | ||
286 | 287 | ||
287 | name = dentry_name(file->f_path.dentry); | 288 | name = dentry_name(file->f_path.dentry); |
288 | if (name == NULL) | 289 | if (name == NULL) |
@@ -292,9 +293,9 @@ int hostfs_readdir(struct file *file, void *ent, filldir_t filldir) | |||
292 | if (dir == NULL) | 293 | if (dir == NULL) |
293 | return -error; | 294 | return -error; |
294 | next = file->f_pos; | 295 | next = file->f_pos; |
295 | while ((name = read_dir(dir, &next, &ino, &len)) != NULL) { | 296 | while ((name = read_dir(dir, &next, &ino, &len, &type)) != NULL) { |
296 | error = (*filldir)(ent, name, len, file->f_pos, | 297 | error = (*filldir)(ent, name, len, file->f_pos, |
297 | ino, DT_UNKNOWN); | 298 | ino, type); |
298 | if (error) break; | 299 | if (error) break; |
299 | file->f_pos = next; | 300 | file->f_pos = next; |
300 | } | 301 | } |
diff --git a/fs/hostfs/hostfs_user.c b/fs/hostfs/hostfs_user.c index dd7bc38a3825..a74ad0d371c2 100644 --- a/fs/hostfs/hostfs_user.c +++ b/fs/hostfs/hostfs_user.c | |||
@@ -98,7 +98,8 @@ void *open_dir(char *path, int *err_out) | |||
98 | } | 98 | } |
99 | 99 | ||
100 | char *read_dir(void *stream, unsigned long long *pos, | 100 | char *read_dir(void *stream, unsigned long long *pos, |
101 | unsigned long long *ino_out, int *len_out) | 101 | unsigned long long *ino_out, int *len_out, |
102 | unsigned int *type_out) | ||
102 | { | 103 | { |
103 | DIR *dir = stream; | 104 | DIR *dir = stream; |
104 | struct dirent *ent; | 105 | struct dirent *ent; |
@@ -109,6 +110,7 @@ char *read_dir(void *stream, unsigned long long *pos, | |||
109 | return NULL; | 110 | return NULL; |
110 | *len_out = strlen(ent->d_name); | 111 | *len_out = strlen(ent->d_name); |
111 | *ino_out = ent->d_ino; | 112 | *ino_out = ent->d_ino; |
113 | *type_out = ent->d_type; | ||
112 | *pos = telldir(dir); | 114 | *pos = telldir(dir); |
113 | return ent->d_name; | 115 | return ent->d_name; |
114 | } | 116 | } |