Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0945f352 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:
  fs/9p: Don't set dentry->d_op in create routines
  fs/9p: fix spelling typo
  fs/9p: TREADLINK bugfix
  net/9p: Use proper data types
  fs/9p: Simplify the .L create operation
  fs/9p: Move dotl inode operations into a seperate file
  fs/9p: fix menu presentation
  fs/9p: Fix the return error on default acl removal
  fs/9p: Remove unnecessary semicolons
parents 7bc4a4ce b8b80cf3
Loading
Loading
Loading
Loading
+4 −1
Original line number Original line Diff line number Diff line
@@ -9,6 +9,8 @@ config 9P_FS


	  If unsure, say N.
	  If unsure, say N.


if 9P_FS

config 9P_FSCACHE
config 9P_FSCACHE
	bool "Enable 9P client caching support (EXPERIMENTAL)"
	bool "Enable 9P client caching support (EXPERIMENTAL)"
	depends on EXPERIMENTAL
	depends on EXPERIMENTAL
@@ -20,7 +22,6 @@ config 9P_FSCACHE


config 9P_FS_POSIX_ACL
config 9P_FS_POSIX_ACL
	bool "9P POSIX Access Control Lists"
	bool "9P POSIX Access Control Lists"
	depends on 9P_FS
	select FS_POSIX_ACL
	select FS_POSIX_ACL
	help
	help
	  POSIX Access Control Lists (ACLs) support permissions for users and
	  POSIX Access Control Lists (ACLs) support permissions for users and
@@ -30,3 +31,5 @@ config 9P_FS_POSIX_ACL
	  Linux website <http://acl.bestbits.at/>.
	  Linux website <http://acl.bestbits.at/>.


	  If you don't know what Access Control Lists are, say N
	  If you don't know what Access Control Lists are, say N

endif
+1 −0
Original line number Original line Diff line number Diff line
@@ -3,6 +3,7 @@ obj-$(CONFIG_9P_FS) := 9p.o
9p-objs := \
9p-objs := \
	vfs_super.o \
	vfs_super.o \
	vfs_inode.o \
	vfs_inode.o \
	vfs_inode_dotl.o \
	vfs_addr.o \
	vfs_addr.o \
	vfs_file.o \
	vfs_file.o \
	vfs_dir.o \
	vfs_dir.o \
+2 −2
Original line number Original line Diff line number Diff line
@@ -28,7 +28,7 @@ static struct posix_acl *__v9fs_get_acl(struct p9_fid *fid, char *name)
{
{
	ssize_t size;
	ssize_t size;
	void *value = NULL;
	void *value = NULL;
	struct posix_acl *acl = NULL;;
	struct posix_acl *acl = NULL;


	size = v9fs_fid_xattr_get(fid, name, NULL, 0);
	size = v9fs_fid_xattr_get(fid, name, NULL, 0);
	if (size > 0) {
	if (size > 0) {
@@ -365,7 +365,7 @@ static int v9fs_xattr_set_acl(struct dentry *dentry, const char *name,
	case ACL_TYPE_DEFAULT:
	case ACL_TYPE_DEFAULT:
		name = POSIX_ACL_XATTR_DEFAULT;
		name = POSIX_ACL_XATTR_DEFAULT;
		if (!S_ISDIR(inode->i_mode)) {
		if (!S_ISDIR(inode->i_mode)) {
			retval = -EINVAL;
			retval = acl ? -EINVAL : 0;
			goto err_out;
			goto err_out;
		}
		}
		break;
		break;
+39 −3
Original line number Original line Diff line number Diff line
@@ -113,9 +113,27 @@ struct v9fs_session_info {


struct p9_fid *v9fs_session_init(struct v9fs_session_info *, const char *,
struct p9_fid *v9fs_session_init(struct v9fs_session_info *, const char *,
									char *);
									char *);
void v9fs_session_close(struct v9fs_session_info *v9ses);
extern void v9fs_session_close(struct v9fs_session_info *v9ses);
void v9fs_session_cancel(struct v9fs_session_info *v9ses);
extern void v9fs_session_cancel(struct v9fs_session_info *v9ses);
void v9fs_session_begin_cancel(struct v9fs_session_info *v9ses);
extern void v9fs_session_begin_cancel(struct v9fs_session_info *v9ses);
extern struct dentry *v9fs_vfs_lookup(struct inode *dir, struct dentry *dentry,
			struct nameidata *nameidata);
extern int v9fs_vfs_unlink(struct inode *i, struct dentry *d);
extern int v9fs_vfs_rmdir(struct inode *i, struct dentry *d);
extern int v9fs_vfs_rename(struct inode *old_dir, struct dentry *old_dentry,
			struct inode *new_dir, struct dentry *new_dentry);
extern void v9fs_vfs_put_link(struct dentry *dentry, struct nameidata *nd,
			void *p);
extern struct inode *v9fs_inode(struct v9fs_session_info *v9ses,
			struct p9_fid *fid,
			struct super_block *sb);

extern const struct inode_operations v9fs_dir_inode_operations_dotl;
extern const struct inode_operations v9fs_file_inode_operations_dotl;
extern const struct inode_operations v9fs_symlink_inode_operations_dotl;
extern struct inode *v9fs_inode_dotl(struct v9fs_session_info *v9ses,
			struct p9_fid *fid,
			struct super_block *sb);


/* other default globals */
/* other default globals */
#define V9FS_PORT	564
#define V9FS_PORT	564
@@ -138,3 +156,21 @@ static inline int v9fs_proto_dotl(struct v9fs_session_info *v9ses)
{
{
	return v9ses->flags & V9FS_PROTO_2000L;
	return v9ses->flags & V9FS_PROTO_2000L;
}
}

/**
 * v9fs_inode_from_fid - Helper routine to populate an inode by
 * issuing a attribute request
 * @v9ses: session information
 * @fid: fid to issue attribute request for
 * @sb: superblock on which to create inode
 *
 */
static inline struct inode *
v9fs_inode_from_fid(struct v9fs_session_info *v9ses, struct p9_fid *fid,
				struct super_block *sb)
{
	if (v9fs_proto_dotl(v9ses))
		return v9fs_inode_dotl(v9ses, fid, sb);
	else
		return v9fs_inode(v9ses, fid, sb);
}
+6 −865

File changed.

Preview size limit exceeded, changes collapsed.

Loading