hostfs: No need to box and later unbox the file mode
There is really no point in having a function with 10 arguments. Reported-by: Daniel Walter <d.walter@0x90.at> Signed-off-by: Richard Weinberger <richard@nod.at>
This commit is contained in:
parent
af6aa1b9ca
commit
b98b91029c
@ -77,8 +77,7 @@ extern int write_file(int fd, unsigned long long *offset, const char *buf,
|
||||
int len);
|
||||
extern int lseek_file(int fd, long long offset, int whence);
|
||||
extern int fsync_file(int fd, int datasync);
|
||||
extern int file_create(char *name, int ur, int uw, int ux, int gr,
|
||||
int gw, int gx, int or, int ow, int ox);
|
||||
extern int file_create(char *name, int mode);
|
||||
extern int set_attr(const char *file, struct hostfs_iattr *attrs, int fd);
|
||||
extern int make_symlink(const char *from, const char *to);
|
||||
extern int unlink_file(const char *file);
|
||||
|
@ -582,10 +582,7 @@ static int hostfs_create(struct inode *dir, struct dentry *dentry, umode_t mode,
|
||||
if (name == NULL)
|
||||
goto out_put;
|
||||
|
||||
fd = file_create(name,
|
||||
mode & S_IRUSR, mode & S_IWUSR, mode & S_IXUSR,
|
||||
mode & S_IRGRP, mode & S_IWGRP, mode & S_IXGRP,
|
||||
mode & S_IROTH, mode & S_IWOTH, mode & S_IXOTH);
|
||||
fd = file_create(name, mode & S_IFMT);
|
||||
if (fd < 0)
|
||||
error = fd;
|
||||
else
|
||||
|
@ -175,21 +175,10 @@ void close_dir(void *stream)
|
||||
closedir(stream);
|
||||
}
|
||||
|
||||
int file_create(char *name, int ur, int uw, int ux, int gr,
|
||||
int gw, int gx, int or, int ow, int ox)
|
||||
int file_create(char *name, int mode)
|
||||
{
|
||||
int mode, fd;
|
||||
int fd;
|
||||
|
||||
mode = 0;
|
||||
mode |= ur ? S_IRUSR : 0;
|
||||
mode |= uw ? S_IWUSR : 0;
|
||||
mode |= ux ? S_IXUSR : 0;
|
||||
mode |= gr ? S_IRGRP : 0;
|
||||
mode |= gw ? S_IWGRP : 0;
|
||||
mode |= gx ? S_IXGRP : 0;
|
||||
mode |= or ? S_IROTH : 0;
|
||||
mode |= ow ? S_IWOTH : 0;
|
||||
mode |= ox ? S_IXOTH : 0;
|
||||
fd = open64(name, O_CREAT | O_RDWR, mode);
|
||||
if (fd < 0)
|
||||
return -errno;
|
||||
|
Loading…
Reference in New Issue
Block a user