projects
/
linux-2.6-microblaze.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ipv4: fix forwarding for strict source routes
[linux-2.6-microblaze.git]
/
fs
/
sync.c
diff --git
a/fs/sync.c
b/fs/sync.c
index
eb8722d
..
14eefeb
100644
(file)
--- a/
fs/sync.c
+++ b/
fs/sync.c
@@
-148,21
+148,19
@@
void emergency_sync(void)
*/
SYSCALL_DEFINE1(syncfs, int, fd)
{
*/
SYSCALL_DEFINE1(syncfs, int, fd)
{
- struct f
ile *file
;
+ struct f
d f = fdget(fd)
;
struct super_block *sb;
int ret;
struct super_block *sb;
int ret;
- int fput_needed;
- file = fget_light(fd, &fput_needed);
- if (!file)
+ if (!f.file)
return -EBADF;
return -EBADF;
- sb = file->f_dentry->d_sb;
+ sb = f
.f
ile->f_dentry->d_sb;
down_read(&sb->s_umount);
ret = sync_filesystem(sb);
up_read(&sb->s_umount);
down_read(&sb->s_umount);
ret = sync_filesystem(sb);
up_read(&sb->s_umount);
- f
put_light(file, fput_needed
);
+ f
dput(f
);
return ret;
}
return ret;
}
@@
-201,14
+199,12
@@
EXPORT_SYMBOL(vfs_fsync);
static int do_fsync(unsigned int fd, int datasync)
{
static int do_fsync(unsigned int fd, int datasync)
{
- struct f
ile *file
;
+ struct f
d f = fdget(fd)
;
int ret = -EBADF;
int ret = -EBADF;
- int fput_needed;
- file = fget_light(fd, &fput_needed);
- if (file) {
- ret = vfs_fsync(file, datasync);
- fput_light(file, fput_needed);
+ if (f.file) {
+ ret = vfs_fsync(f.file, datasync);
+ fdput(f);
}
return ret;
}
}
return ret;
}
@@
-291,10
+287,9
@@
SYSCALL_DEFINE(sync_file_range)(int fd, loff_t offset, loff_t nbytes,
unsigned int flags)
{
int ret;
unsigned int flags)
{
int ret;
- struct f
ile *file
;
+ struct f
d f
;
struct address_space *mapping;
loff_t endbyte; /* inclusive */
struct address_space *mapping;
loff_t endbyte; /* inclusive */
- int fput_needed;
umode_t i_mode;
ret = -EINVAL;
umode_t i_mode;
ret = -EINVAL;
@@
-333,17
+328,17
@@
SYSCALL_DEFINE(sync_file_range)(int fd, loff_t offset, loff_t nbytes,
endbyte--; /* inclusive */
ret = -EBADF;
endbyte--; /* inclusive */
ret = -EBADF;
- f
ile = fget_light(fd, &fput_neede
d);
- if (!file)
+ f
= fdget(f
d);
+ if (!f
.f
ile)
goto out;
goto out;
- i_mode = file->f_path.dentry->d_inode->i_mode;
+ i_mode = f
.f
ile->f_path.dentry->d_inode->i_mode;
ret = -ESPIPE;
if (!S_ISREG(i_mode) && !S_ISBLK(i_mode) && !S_ISDIR(i_mode) &&
!S_ISLNK(i_mode))
goto out_put;
ret = -ESPIPE;
if (!S_ISREG(i_mode) && !S_ISBLK(i_mode) && !S_ISDIR(i_mode) &&
!S_ISLNK(i_mode))
goto out_put;
- mapping = file->f_mapping;
+ mapping = f
.f
ile->f_mapping;
if (!mapping) {
ret = -EINVAL;
goto out_put;
if (!mapping) {
ret = -EINVAL;
goto out_put;
@@
-366,7
+361,7
@@
SYSCALL_DEFINE(sync_file_range)(int fd, loff_t offset, loff_t nbytes,
ret = filemap_fdatawait_range(mapping, offset, endbyte);
out_put:
ret = filemap_fdatawait_range(mapping, offset, endbyte);
out_put:
- f
put_light(file, fput_needed
);
+ f
dput(f
);
out:
return ret;
}
out:
return ret;
}