git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
writeback: Fix periodic writeback after fs mount
[pandora-kernel.git]
/
fs
/
open.c
diff --git
a/fs/open.c
b/fs/open.c
index
22c41b5
..
b8485d3
100644
(file)
--- a/
fs/open.c
+++ b/
fs/open.c
@@
-396,10
+396,10
@@
SYSCALL_DEFINE1(fchdir, unsigned int, fd)
{
struct file *file;
struct inode *inode;
{
struct file *file;
struct inode *inode;
- int error;
+ int error
, fput_needed
;
error = -EBADF;
error = -EBADF;
- file = fget
(f
d);
+ file = fget
_raw_light(fd, &fput_neede
d);
if (!file)
goto out;
if (!file)
goto out;
@@
-413,7
+413,7
@@
SYSCALL_DEFINE1(fchdir, unsigned int, fd)
if (!error)
set_fs_pwd(current->fs, &file->f_path);
out_putf:
if (!error)
set_fs_pwd(current->fs, &file->f_path);
out_putf:
- fput
(file
);
+ fput
_light(file, fput_needed
);
out:
return error;
}
out:
return error;
}
@@
-882,9
+882,10
@@
static inline int build_open_flags(int flags, int mode, struct open_flags *op)
int lookup_flags = 0;
int acc_mode;
int lookup_flags = 0;
int acc_mode;
- if (!(flags & O_CREAT))
- mode = 0;
- op->mode = mode;
+ if (flags & O_CREAT)
+ op->mode = (mode & S_IALLUGO) | S_IFREG;
+ else
+ op->mode = 0;
/* Must never be set by userspace */
flags &= ~FMODE_NONOTIFY;
/* Must never be set by userspace */
flags &= ~FMODE_NONOTIFY;