* Consolidated '*' style.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29341 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2009-02-27 23:09:39 +00:00
parent 595d8a3b9c
commit 2e47b62e2c
+145 -99
View File
@@ -1,6 +1,6 @@
/* /*
* Copyright 2005-2008, Ingo Weinhold, [email protected]. * Copyright 2005-2008, Ingo Weinhold, [email protected].
* Copyright 2002-2008, Axel Dörfler, [email protected]. * Copyright 2002-2009, Axel Dörfler, [email protected].
* Distributed under the terms of the MIT License. * Distributed under the terms of the MIT License.
* *
* Copyright 2001-2002, Travis Geiselbrecht. All rights reserved. * Copyright 2001-2002, Travis Geiselbrecht. All rights reserved.
@@ -443,49 +443,63 @@ mode_t __gUmask = 022;
/* function declarations */ /* function declarations */
// file descriptor operation prototypes // file descriptor operation prototypes
static status_t file_read(struct file_descriptor *, off_t pos, void *buffer, size_t *); static status_t file_read(struct file_descriptor* descriptor, off_t pos,
static status_t file_write(struct file_descriptor *, off_t pos, const void *buffer, size_t *); void* buffer, size_t* _bytes);
static off_t file_seek(struct file_descriptor *, off_t pos, int seek_type); static status_t file_write(struct file_descriptor* descriptor, off_t pos,
static void file_free_fd(struct file_descriptor *); const void* buffer, size_t* _bytes);
static status_t file_close(struct file_descriptor *); static off_t file_seek(struct file_descriptor* descriptor, off_t pos,
static status_t file_select(struct file_descriptor *, uint8 event, int seekType);
static void file_free_fd(struct file_descriptor* descriptor);
static status_t file_close(struct file_descriptor* descriptor);
static status_t file_select(struct file_descriptor* descriptor, uint8 event,
struct selectsync* sync); struct selectsync* sync);
static status_t file_deselect(struct file_descriptor *, uint8 event, static status_t file_deselect(struct file_descriptor* descriptor, uint8 event,
struct selectsync* sync); struct selectsync* sync);
static status_t dir_read(struct io_context *, struct file_descriptor *, static status_t dir_read(struct io_context* context,
struct dirent *buffer, size_t bufferSize, uint32 *_count); struct file_descriptor* descriptor, struct dirent* buffer, size_t bufferSize,
uint32* _count);
static status_t dir_read(struct io_context* ioContext, struct vnode* vnode, static status_t dir_read(struct io_context* ioContext, struct vnode* vnode,
void* cookie, struct dirent* buffer, size_t bufferSize, uint32* _count); void* cookie, struct dirent* buffer, size_t bufferSize, uint32* _count);
static status_t dir_rewind(struct file_descriptor *); static status_t dir_rewind(struct file_descriptor* descriptor);
static void dir_free_fd(struct file_descriptor *); static void dir_free_fd(struct file_descriptor* descriptor);
static status_t dir_close(struct file_descriptor *); static status_t dir_close(struct file_descriptor* descriptor);
static status_t attr_dir_read(struct io_context *, struct file_descriptor *, static status_t attr_dir_read(struct io_context* context,
struct dirent *buffer, size_t bufferSize, uint32 *_count); struct file_descriptor* descriptor, struct dirent* buffer, size_t bufferSize,
static status_t attr_dir_rewind(struct file_descriptor *); uint32* _count);
static void attr_dir_free_fd(struct file_descriptor *); static status_t attr_dir_rewind(struct file_descriptor* descriptor);
static status_t attr_dir_close(struct file_descriptor *); static void attr_dir_free_fd(struct file_descriptor* descriptor);
static status_t attr_read(struct file_descriptor *, off_t pos, void *buffer, size_t *); static status_t attr_dir_close(struct file_descriptor* descriptor);
static status_t attr_write(struct file_descriptor *, off_t pos, const void *buffer, size_t *); static status_t attr_read(struct file_descriptor* descriptor, off_t pos,
static off_t attr_seek(struct file_descriptor *, off_t pos, int seek_type); void* buffer, size_t* _bytes);
static void attr_free_fd(struct file_descriptor *); static status_t attr_write(struct file_descriptor* descriptor, off_t pos,
static status_t attr_close(struct file_descriptor *); const void* buffer, size_t* _bytes);
static status_t attr_read_stat(struct file_descriptor *, struct stat *); static off_t attr_seek(struct file_descriptor* descriptor, off_t pos,
static status_t attr_write_stat(struct file_descriptor *, const struct stat *, int statMask); int seekType);
static status_t index_dir_read(struct io_context *, struct file_descriptor *, static void attr_free_fd(struct file_descriptor* descriptor);
struct dirent *buffer, size_t bufferSize, uint32 *_count); static status_t attr_close(struct file_descriptor* descriptor);
static status_t index_dir_rewind(struct file_descriptor *); static status_t attr_read_stat(struct file_descriptor* descriptor,
static void index_dir_free_fd(struct file_descriptor *); struct stat* statData);
static status_t index_dir_close(struct file_descriptor *); static status_t attr_write_stat(struct file_descriptor* descriptor,
static status_t query_read(struct io_context *, struct file_descriptor *, const struct stat* descriptor, int statMask);
struct dirent *buffer, size_t bufferSize, uint32 *_count); static status_t index_dir_read(struct io_context* context,
static status_t query_rewind(struct file_descriptor *); struct file_descriptor* descriptor, struct dirent* buffer, size_t bufferSize,
static void query_free_fd(struct file_descriptor *); uint32* _count);
static status_t query_close(struct file_descriptor *); static status_t index_dir_rewind(struct file_descriptor* descriptor);
static void index_dir_free_fd(struct file_descriptor* descriptor);
static status_t common_ioctl(struct file_descriptor *, ulong, void *buf, size_t len); static status_t index_dir_close(struct file_descriptor* descriptor);
static status_t common_read_stat(struct file_descriptor *, struct stat *); static status_t query_read(struct io_context* context,
static status_t common_write_stat(struct file_descriptor *, const struct stat *, int statMask); struct file_descriptor* descriptor, struct dirent* buffer, size_t bufferSize,
uint32* _count);
static status_t query_rewind(struct file_descriptor* descriptor);
static void query_free_fd(struct file_descriptor* descriptor);
static status_t query_close(struct file_descriptor* descriptor);
static status_t common_ioctl(struct file_descriptor* descriptor, ulong op,
void* buffer, size_t length);
static status_t common_read_stat(struct file_descriptor* descriptor,
struct stat* statData);
static status_t common_write_stat(struct file_descriptor* descriptor,
const struct stat* statData, int statMask);
static status_t common_path_read_stat(int fd, char* path, bool traverseLeafLink, static status_t common_path_read_stat(int fd, char* path, bool traverseLeafLink,
struct stat* stat, bool kernel); struct stat* stat, bool kernel);
@@ -4101,7 +4115,8 @@ status_t
vfs_get_module_path(const char* basePath, const char* moduleName, vfs_get_module_path(const char* basePath, const char* moduleName,
char* pathBuffer, size_t bufferSize) char* pathBuffer, size_t bufferSize)
{ {
struct vnode *dir, *file; struct vnode* dir;
struct vnode* file;
status_t status; status_t status;
size_t length; size_t length;
char* path; char* path;
@@ -4824,34 +4839,26 @@ vfs_getrlimit(int resource, struct rlimit * rlp)
switch (resource) { switch (resource) {
case RLIMIT_NOFILE: case RLIMIT_NOFILE:
{ {
struct io_context *ioctx = get_current_io_context(false); struct io_context* context = get_current_io_context(false);
MutexLocker _(context->io_mutex);
mutex_lock(&ioctx->io_mutex); rlp->rlim_cur = context->table_size;
rlp->rlim_cur = ioctx->table_size;
rlp->rlim_max = MAX_FD_TABLE_SIZE; rlp->rlim_max = MAX_FD_TABLE_SIZE;
mutex_unlock(&ioctx->io_mutex);
return 0; return 0;
} }
case RLIMIT_NOVMON: case RLIMIT_NOVMON:
{ {
struct io_context *ioctx = get_current_io_context(false); struct io_context* context = get_current_io_context(false);
MutexLocker _(context->io_mutex);
mutex_lock(&ioctx->io_mutex); rlp->rlim_cur = context->max_monitors;
rlp->rlim_cur = ioctx->max_monitors;
rlp->rlim_max = MAX_NODE_MONITORS; rlp->rlim_max = MAX_NODE_MONITORS;
mutex_unlock(&ioctx->io_mutex);
return 0; return 0;
} }
default: default:
return EINVAL; return B_BAD_VALUE;
} }
} }
@@ -4867,18 +4874,22 @@ vfs_setrlimit(int resource, const struct rlimit * rlp)
/* TODO: check getuid() */ /* TODO: check getuid() */
if (rlp->rlim_max != RLIM_SAVED_MAX if (rlp->rlim_max != RLIM_SAVED_MAX
&& rlp->rlim_max != MAX_FD_TABLE_SIZE) && rlp->rlim_max != MAX_FD_TABLE_SIZE)
return EPERM; return B_NOT_ALLOWED;
return vfs_resize_fd_table(get_current_io_context(false), rlp->rlim_cur);
return vfs_resize_fd_table(get_current_io_context(false),
rlp->rlim_cur);
case RLIMIT_NOVMON: case RLIMIT_NOVMON:
/* TODO: check getuid() */ /* TODO: check getuid() */
if (rlp->rlim_max != RLIM_SAVED_MAX if (rlp->rlim_max != RLIM_SAVED_MAX
&& rlp->rlim_max != MAX_NODE_MONITORS) && rlp->rlim_max != MAX_NODE_MONITORS)
return EPERM; return B_NOT_ALLOWED;
return vfs_resize_monitor_table(get_current_io_context(false), rlp->rlim_cur);
return vfs_resize_monitor_table(get_current_io_context(false),
rlp->rlim_cur);
default: default:
return EINVAL; return B_BAD_VALUE;
} }
} }
@@ -5365,7 +5376,8 @@ file_deselect(struct file_descriptor *descriptor, uint8 event,
static status_t static status_t
dir_create_entry_ref(dev_t mountID, ino_t parentID, const char *name, int perms, bool kernel) dir_create_entry_ref(dev_t mountID, ino_t parentID, const char* name, int perms,
bool kernel)
{ {
struct vnode* vnode; struct vnode* vnode;
ino_t newID; ino_t newID;
@@ -5374,7 +5386,8 @@ dir_create_entry_ref(dev_t mountID, ino_t parentID, const char *name, int perms,
if (name == NULL || *name == '\0') if (name == NULL || *name == '\0')
return B_BAD_VALUE; return B_BAD_VALUE;
FUNCTION(("dir_create_entry_ref(dev = %ld, ino = %Ld, name = '%s', perms = %d)\n", mountID, parentID, name, perms)); FUNCTION(("dir_create_entry_ref(dev = %ld, ino = %Ld, name = '%s', "
"perms = %d)\n", mountID, parentID, name, perms));
status = get_vnode(mountID, parentID, &vnode, true, false); status = get_vnode(mountID, parentID, &vnode, true, false);
if (status < B_OK) if (status < B_OK)
@@ -5944,10 +5957,12 @@ common_create_link(char *path, char *toPath, bool kernel)
{ {
// path validity checks have to be in the calling function! // path validity checks have to be in the calling function!
char name[B_FILE_NAME_LENGTH]; char name[B_FILE_NAME_LENGTH];
struct vnode *directory, *vnode; struct vnode* directory;
struct vnode* vnode;
status_t status; status_t status;
FUNCTION(("common_create_link(path = %s, toPath = %s, kernel = %d)\n", path, toPath, kernel)); FUNCTION(("common_create_link(path = %s, toPath = %s, kernel = %d)\n", path,
toPath, kernel));
status = path_to_dir_vnode(path, &directory, name, kernel); status = path_to_dir_vnode(path, &directory, name, kernel);
if (status < B_OK) if (status < B_OK)
@@ -6024,12 +6039,14 @@ common_access(char *path, int mode, bool kernel)
static status_t static status_t
common_rename(int fd, char* path, int newFD, char* newPath, bool kernel) common_rename(int fd, char* path, int newFD, char* newPath, bool kernel)
{ {
struct vnode *fromVnode, *toVnode; struct vnode* fromVnode;
struct vnode* toVnode;
char fromName[B_FILE_NAME_LENGTH]; char fromName[B_FILE_NAME_LENGTH];
char toName[B_FILE_NAME_LENGTH]; char toName[B_FILE_NAME_LENGTH];
status_t status; status_t status;
FUNCTION(("common_rename(fd = %d, path = %s, newFD = %d, newPath = %s, kernel = %d)\n", fd, path, newFD, newPath, kernel)); FUNCTION(("common_rename(fd = %d, path = %s, newFD = %d, newPath = %s, "
"kernel = %d)\n", fd, path, newFD, newPath, kernel));
status = fd_and_path_to_dir_vnode(fd, path, &fromVnode, fromName, kernel); status = fd_and_path_to_dir_vnode(fd, path, &fromVnode, fromName, kernel);
if (status < B_OK) if (status < B_OK)
@@ -6079,11 +6096,14 @@ common_read_stat(struct file_descriptor *descriptor, struct stat *stat)
static status_t static status_t
common_write_stat(struct file_descriptor *descriptor, const struct stat *stat, int statMask) common_write_stat(struct file_descriptor* descriptor, const struct stat* stat,
int statMask)
{ {
struct vnode* vnode = descriptor->u.vnode; struct vnode* vnode = descriptor->u.vnode;
FUNCTION(("common_write_stat(vnode = %p, stat = %p, statMask = %d)\n", vnode, stat, statMask)); FUNCTION(("common_write_stat(vnode = %p, stat = %p, statMask = %d)\n", vnode,
stat, statMask));
if (!HAS_FS_CALL(vnode, write_stat)) if (!HAS_FS_CALL(vnode, write_stat))
return EROFS; return EROFS;
@@ -6098,9 +6118,11 @@ common_path_read_stat(int fd, char *path, bool traverseLeafLink,
struct vnode* vnode; struct vnode* vnode;
status_t status; status_t status;
FUNCTION(("common_path_read_stat: fd: %d, path '%s', stat %p,\n", fd, path, stat)); FUNCTION(("common_path_read_stat: fd: %d, path '%s', stat %p,\n", fd, path,
stat));
status = fd_and_path_to_vnode(fd, path, traverseLeafLink, &vnode, NULL, kernel); status = fd_and_path_to_vnode(fd, path, traverseLeafLink, &vnode, NULL,
kernel);
if (status < 0) if (status < 0)
return status; return status;
@@ -6320,11 +6342,14 @@ attr_free_fd(struct file_descriptor *descriptor)
static status_t static status_t
attr_read(struct file_descriptor *descriptor, off_t pos, void *buffer, size_t *length) attr_read(struct file_descriptor* descriptor, off_t pos, void* buffer,
size_t* length)
{ {
struct vnode* vnode = descriptor->u.vnode; struct vnode* vnode = descriptor->u.vnode;
FUNCTION(("attr_read: buf %p, pos %Ld, len %p = %ld\n", buffer, pos, length, *length)); FUNCTION(("attr_read: buf %p, pos %Ld, len %p = %ld\n", buffer, pos, length,
*length));
if (!HAS_FS_CALL(vnode, read_attr)) if (!HAS_FS_CALL(vnode, read_attr))
return EOPNOTSUPP; return EOPNOTSUPP;
@@ -6333,7 +6358,8 @@ attr_read(struct file_descriptor *descriptor, off_t pos, void *buffer, size_t *l
static status_t static status_t
attr_write(struct file_descriptor *descriptor, off_t pos, const void *buffer, size_t *length) attr_write(struct file_descriptor* descriptor, off_t pos, const void* buffer,
size_t* length)
{ {
struct vnode* vnode = descriptor->u.vnode; struct vnode* vnode = descriptor->u.vnode;
@@ -6403,7 +6429,8 @@ attr_read_stat(struct file_descriptor *descriptor, struct stat *stat)
static status_t static status_t
attr_write_stat(struct file_descriptor *descriptor, const struct stat *stat, int statMask) attr_write_stat(struct file_descriptor* descriptor, const struct stat* stat,
int statMask)
{ {
struct vnode* vnode = descriptor->u.vnode; struct vnode* vnode = descriptor->u.vnode;
@@ -6426,7 +6453,8 @@ attr_remove(int fd, const char *name, bool kernel)
if (name == NULL || *name == '\0') if (name == NULL || *name == '\0')
return B_BAD_VALUE; return B_BAD_VALUE;
FUNCTION(("attr_remove: fd = %d, name = \"%s\", kernel %d\n", fd, name, kernel)); FUNCTION(("attr_remove: fd = %d, name = \"%s\", kernel %d\n", fd, name,
kernel));
descriptor = get_fd_and_vnode(fd, &vnode, kernel); descriptor = get_fd_and_vnode(fd, &vnode, kernel);
if (descriptor == NULL) if (descriptor == NULL)
@@ -6444,22 +6472,27 @@ attr_remove(int fd, const char *name, bool kernel)
static status_t static status_t
attr_rename(int fromfd, const char *fromName, int tofd, const char *toName, bool kernel) attr_rename(int fromFD, const char* fromName, int toFD, const char* toName,
bool kernel)
{ {
struct file_descriptor *fromDescriptor, *toDescriptor; struct file_descriptor* fromDescriptor;
struct vnode *fromVnode, *toVnode; struct file_descriptor* toDescriptor;
struct vnode* fromVnode;
struct vnode* toVnode;
status_t status; status_t status;
if (fromName == NULL || *fromName == '\0' || toName == NULL || *toName == '\0') if (fromName == NULL || *fromName == '\0' || toName == NULL
|| *toName == '\0')
return B_BAD_VALUE; return B_BAD_VALUE;
FUNCTION(("attr_rename: from fd = %d, from name = \"%s\", to fd = %d, to name = \"%s\", kernel %d\n", fromfd, fromName, tofd, toName, kernel)); FUNCTION(("attr_rename: from fd = %d, from name = \"%s\", to fd = %d, to "
"name = \"%s\", kernel %d\n", fromFD, fromName, toFD, toName, kernel));
fromDescriptor = get_fd_and_vnode(fromfd, &fromVnode, kernel); fromDescriptor = get_fd_and_vnode(fromFD, &fromVnode, kernel);
if (fromDescriptor == NULL) if (fromDescriptor == NULL)
return B_FILE_ERROR; return B_FILE_ERROR;
toDescriptor = get_fd_and_vnode(tofd, &toVnode, kernel); toDescriptor = get_fd_and_vnode(toFD, &toVnode, kernel);
if (toDescriptor == NULL) { if (toDescriptor == NULL) {
status = B_FILE_ERROR; status = B_FILE_ERROR;
goto err; goto err;
@@ -6574,9 +6607,11 @@ index_dir_rewind(struct file_descriptor *descriptor)
static status_t static status_t
index_create(dev_t mountID, const char *name, uint32 type, uint32 flags, bool kernel) index_create(dev_t mountID, const char* name, uint32 type, uint32 flags,
bool kernel)
{ {
FUNCTION(("index_create(mountID = %ld, name = %s, kernel = %d)\n", mountID, name, kernel)); FUNCTION(("index_create(mountID = %ld, name = %s, kernel = %d)\n", mountID,
name, kernel));
struct fs_mount* mount; struct fs_mount* mount;
status_t status = get_mount(mountID, &mount); status_t status = get_mount(mountID, &mount);
@@ -6626,9 +6661,11 @@ index_free_fd(struct file_descriptor *descriptor)
static status_t static status_t
index_name_read_stat(dev_t mountID, const char *name, struct stat *stat, bool kernel) index_name_read_stat(dev_t mountID, const char* name, struct stat* stat,
bool kernel)
{ {
FUNCTION(("index_remove(mountID = %ld, name = %s, kernel = %d)\n", mountID, name, kernel)); FUNCTION(("index_remove(mountID = %ld, name = %s, kernel = %d)\n", mountID,
name, kernel));
struct fs_mount* mount; struct fs_mount* mount;
status_t status = get_mount(mountID, &mount); status_t status = get_mount(mountID, &mount);
@@ -6651,7 +6688,8 @@ out:
static status_t static status_t
index_remove(dev_t mountID, const char* name, bool kernel) index_remove(dev_t mountID, const char* name, bool kernel)
{ {
FUNCTION(("index_remove(mountID = %ld, name = %s, kernel = %d)\n", mountID, name, kernel)); FUNCTION(("index_remove(mountID = %ld, name = %s, kernel = %d)\n", mountID,
name, kernel));
struct fs_mount* mount; struct fs_mount* mount;
status_t status = get_mount(mountID, &mount); status_t status = get_mount(mountID, &mount);
@@ -6671,19 +6709,20 @@ out:
} }
/*! ToDo: the query FS API is still the pretty much the same as in R5. /*! TODO: the query FS API is still the pretty much the same as in R5.
It would be nice if the FS would find some more kernel support It would be nice if the FS would find some more kernel support
for them. for them.
For example, query parsing should be moved into the kernel. For example, query parsing should be moved into the kernel.
*/ */
static int static int
query_open(dev_t device, const char *query, uint32 flags, query_open(dev_t device, const char* query, uint32 flags, port_id port,
port_id port, int32 token, bool kernel) int32 token, bool kernel)
{ {
struct fs_mount* mount; struct fs_mount* mount;
void* cookie; void* cookie;
FUNCTION(("query_open(device = %ld, query = \"%s\", kernel = %d)\n", device, query, kernel)); FUNCTION(("query_open(device = %ld, query = \"%s\", kernel = %d)\n", device,
query, kernel));
status_t status = get_mount(device, &mount); status_t status = get_mount(device, &mount);
if (status < B_OK) if (status < B_OK)
@@ -7638,7 +7677,8 @@ _kern_get_next_fd_info(team_id teamID, uint32 *_cookie, fd_info *info,
int int
_kern_open_entry_ref(dev_t device, ino_t inode, const char *name, int openMode, int perms) _kern_open_entry_ref(dev_t device, ino_t inode, const char* name, int openMode,
int perms)
{ {
if (openMode & O_CREAT) if (openMode & O_CREAT)
return file_create_entry_ref(device, inode, name, openMode, perms, true); return file_create_entry_ref(device, inode, name, openMode, perms, true);
@@ -7753,7 +7793,8 @@ _kern_unlock_node(int fd)
status_t status_t
_kern_create_dir_entry_ref(dev_t device, ino_t inode, const char *name, int perms) _kern_create_dir_entry_ref(dev_t device, ino_t inode, const char* name,
int perms)
{ {
return dir_create_entry_ref(device, inode, name, perms, true); return dir_create_entry_ref(device, inode, name, perms, true);
} }
@@ -8085,7 +8126,8 @@ _kern_remove_attr(int fd, const char *name)
status_t status_t
_kern_rename_attr(int fromFile, const char *fromName, int toFile, const char *toName) _kern_rename_attr(int fromFile, const char* fromName, int toFile,
const char* toName)
{ {
return attr_rename(fromFile, fromName, toFile, toName, true); return attr_rename(fromFile, fromName, toFile, toName, true);
} }
@@ -8147,8 +8189,9 @@ _kern_setcwd(int fd, const char *path)
dev_t dev_t
_user_mount(const char *userPath, const char *userDevice, const char *userFileSystem, _user_mount(const char* userPath, const char* userDevice,
uint32 flags, const char *userArgs, size_t argsLength) const char* userFileSystem, uint32 flags, const char* userArgs,
size_t argsLength)
{ {
char fileSystem[B_FILE_NAME_LENGTH]; char fileSystem[B_FILE_NAME_LENGTH];
KPath path, device; KPath path, device;
@@ -8603,7 +8646,8 @@ _user_unlock_node(int fd)
status_t status_t
_user_create_dir_entry_ref(dev_t device, ino_t inode, const char *userName, int perms) _user_create_dir_entry_ref(dev_t device, ino_t inode, const char* userName,
int perms)
{ {
char name[B_FILE_NAME_LENGTH]; char name[B_FILE_NAME_LENGTH];
status_t status; status_t status;
@@ -8656,7 +8700,8 @@ _user_remove_dir(int fd, const char *userPath)
status_t status_t
_user_read_link(int fd, const char *userPath, char *userBuffer, size_t *userBufferSize) _user_read_link(int fd, const char* userPath, char* userBuffer,
size_t* userBufferSize)
{ {
KPath pathBuffer(B_PATH_NAME_LENGTH + 1), linkBuffer; KPath pathBuffer(B_PATH_NAME_LENGTH + 1), linkBuffer;
if (pathBuffer.InitCheck() != B_OK || linkBuffer.InitCheck() != B_OK) if (pathBuffer.InitCheck() != B_OK || linkBuffer.InitCheck() != B_OK)
@@ -9064,7 +9109,8 @@ _user_remove_attr(int fd, const char *userName)
status_t status_t
_user_rename_attr(int fromFile, const char *userFromName, int toFile, const char *userToName) _user_rename_attr(int fromFile, const char* userFromName, int toFile,
const char* userToName)
{ {
if (!IS_USER_ADDRESS(userFromName) if (!IS_USER_ADDRESS(userFromName)
|| !IS_USER_ADDRESS(userToName)) || !IS_USER_ADDRESS(userToName))