diff options
author | Srikant Patnaik | 2015-01-11 12:28:04 +0530 |
---|---|---|
committer | Srikant Patnaik | 2015-01-11 12:28:04 +0530 |
commit | 871480933a1c28f8a9fed4c4d34d06c439a7a422 (patch) | |
tree | 8718f573808810c2a1e8cb8fb6ac469093ca2784 /ANDROID_3.4.5/fs/9p/xattr.c | |
parent | 9d40ac5867b9aefe0722bc1f110b965ff294d30d (diff) | |
download | FOSSEE-netbook-kernel-source-871480933a1c28f8a9fed4c4d34d06c439a7a422.tar.gz FOSSEE-netbook-kernel-source-871480933a1c28f8a9fed4c4d34d06c439a7a422.tar.bz2 FOSSEE-netbook-kernel-source-871480933a1c28f8a9fed4c4d34d06c439a7a422.zip |
Moved, renamed, and deleted files
The original directory structure was scattered and unorganized.
Changes are basically to make it look like kernel structure.
Diffstat (limited to 'ANDROID_3.4.5/fs/9p/xattr.c')
-rw-r--r-- | ANDROID_3.4.5/fs/9p/xattr.c | 172 |
1 files changed, 0 insertions, 172 deletions
diff --git a/ANDROID_3.4.5/fs/9p/xattr.c b/ANDROID_3.4.5/fs/9p/xattr.c deleted file mode 100644 index 29653b70..00000000 --- a/ANDROID_3.4.5/fs/9p/xattr.c +++ /dev/null @@ -1,172 +0,0 @@ -/* - * Copyright IBM Corporation, 2010 - * Author Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2.1 of the GNU Lesser General Public License - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ - -#include <linux/module.h> -#include <linux/fs.h> -#include <linux/sched.h> -#include <net/9p/9p.h> -#include <net/9p/client.h> - -#include "fid.h" -#include "xattr.h" - -ssize_t v9fs_fid_xattr_get(struct p9_fid *fid, const char *name, - void *buffer, size_t buffer_size) -{ - ssize_t retval; - int msize, read_count; - u64 offset = 0, attr_size; - struct p9_fid *attr_fid; - - attr_fid = p9_client_xattrwalk(fid, name, &attr_size); - if (IS_ERR(attr_fid)) { - retval = PTR_ERR(attr_fid); - p9_debug(P9_DEBUG_VFS, "p9_client_attrwalk failed %zd\n", - retval); - attr_fid = NULL; - goto error; - } - if (!buffer_size) { - /* request to get the attr_size */ - retval = attr_size; - goto error; - } - if (attr_size > buffer_size) { - retval = -ERANGE; - goto error; - } - msize = attr_fid->clnt->msize; - while (attr_size) { - if (attr_size > (msize - P9_IOHDRSZ)) - read_count = msize - P9_IOHDRSZ; - else - read_count = attr_size; - read_count = p9_client_read(attr_fid, ((char *)buffer)+offset, - NULL, offset, read_count); - if (read_count < 0) { - /* error in xattr read */ - retval = read_count; - goto error; - } - offset += read_count; - attr_size -= read_count; - } - /* Total read xattr bytes */ - retval = offset; -error: - if (attr_fid) - p9_client_clunk(attr_fid); - return retval; - -} - - -/* - * v9fs_xattr_get() - * - * Copy an extended attribute into the buffer - * provided, or compute the buffer size required. - * Buffer is NULL to compute the size of the buffer required. - * - * Returns a negative error number on failure, or the number of bytes - * used / required on success. - */ -ssize_t v9fs_xattr_get(struct dentry *dentry, const char *name, - void *buffer, size_t buffer_size) -{ - struct p9_fid *fid; - - p9_debug(P9_DEBUG_VFS, "name = %s value_len = %zu\n", - name, buffer_size); - fid = v9fs_fid_lookup(dentry); - if (IS_ERR(fid)) - return PTR_ERR(fid); - - return v9fs_fid_xattr_get(fid, name, buffer, buffer_size); -} - -/* - * v9fs_xattr_set() - * - * Create, replace or remove an extended attribute for this inode. Buffer - * is NULL to remove an existing extended attribute, and non-NULL to - * either replace an existing extended attribute, or create a new extended - * attribute. The flags XATTR_REPLACE and XATTR_CREATE - * specify that an extended attribute must exist and must not exist - * previous to the call, respectively. - * - * Returns 0, or a negative error number on failure. - */ -int v9fs_xattr_set(struct dentry *dentry, const char *name, - const void *value, size_t value_len, int flags) -{ - u64 offset = 0; - int retval, msize, write_count; - struct p9_fid *fid = NULL; - - p9_debug(P9_DEBUG_VFS, "name = %s value_len = %zu flags = %d\n", - name, value_len, flags); - - fid = v9fs_fid_clone(dentry); - if (IS_ERR(fid)) { - retval = PTR_ERR(fid); - fid = NULL; - goto error; - } - /* - * On success fid points to xattr - */ - retval = p9_client_xattrcreate(fid, name, value_len, flags); - if (retval < 0) { - p9_debug(P9_DEBUG_VFS, "p9_client_xattrcreate failed %d\n", - retval); - goto error; - } - msize = fid->clnt->msize; - while (value_len) { - if (value_len > (msize - P9_IOHDRSZ)) - write_count = msize - P9_IOHDRSZ; - else - write_count = value_len; - write_count = p9_client_write(fid, ((char *)value)+offset, - NULL, offset, write_count); - if (write_count < 0) { - /* error in xattr write */ - retval = write_count; - goto error; - } - offset += write_count; - value_len -= write_count; - } - /* Total read xattr bytes */ - retval = offset; -error: - if (fid) - retval = p9_client_clunk(fid); - return retval; -} - -ssize_t v9fs_listxattr(struct dentry *dentry, char *buffer, size_t buffer_size) -{ - return v9fs_xattr_get(dentry, NULL, buffer, buffer_size); -} - -const struct xattr_handler *v9fs_xattr_handlers[] = { - &v9fs_xattr_user_handler, -#ifdef CONFIG_9P_FS_POSIX_ACL - &v9fs_xattr_acl_access_handler, - &v9fs_xattr_acl_default_handler, -#endif - NULL -}; |