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

Commit 06663267 authored by Miklos Szeredi's avatar Miklos Szeredi Committed by Linus Torvalds
Browse files

[PATCH] FUSE: add padding



Add padding to structures to make sizes the same on 32bit and 64bit archs.
Initial testing and test machine generously provided by Franco Broi.

Signed-off-by: default avatarMiklos Szeredi <miklos@szeredi.hu>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 92a8780e
Loading
Loading
Loading
Loading
+15 −0
Original line number Original line Diff line number Diff line
@@ -25,6 +25,9 @@
/** The minor number of the fuse character device */
/** The minor number of the fuse character device */
#define FUSE_MINOR 229
#define FUSE_MINOR 229


/* Make sure all structures are padded to 64bit boundary, so 32bit
   userspace works under 64bit kernels */

struct fuse_attr {
struct fuse_attr {
	__u64	ino;
	__u64	ino;
	__u64	size;
	__u64	size;
@@ -128,6 +131,7 @@ struct fuse_mknod_in {


struct fuse_mkdir_in {
struct fuse_mkdir_in {
	__u32	mode;
	__u32	mode;
	__u32	padding;
};
};


struct fuse_rename_in {
struct fuse_rename_in {
@@ -140,32 +144,38 @@ struct fuse_link_in {


struct fuse_setattr_in {
struct fuse_setattr_in {
	__u32	valid;
	__u32	valid;
	__u32	padding;
	struct fuse_attr attr;
	struct fuse_attr attr;
};
};


struct fuse_open_in {
struct fuse_open_in {
	__u32	flags;
	__u32	flags;
	__u32	padding;
};
};


struct fuse_open_out {
struct fuse_open_out {
	__u64	fh;
	__u64	fh;
	__u32	open_flags;
	__u32	open_flags;
	__u32	padding;
};
};


struct fuse_release_in {
struct fuse_release_in {
	__u64	fh;
	__u64	fh;
	__u32	flags;
	__u32	flags;
	__u32	padding;
};
};


struct fuse_flush_in {
struct fuse_flush_in {
	__u64	fh;
	__u64	fh;
	__u32	flush_flags;
	__u32	flush_flags;
	__u32	padding;
};
};


struct fuse_read_in {
struct fuse_read_in {
	__u64	fh;
	__u64	fh;
	__u64	offset;
	__u64	offset;
	__u32	size;
	__u32	size;
	__u32	padding;
};
};


struct fuse_write_in {
struct fuse_write_in {
@@ -177,6 +187,7 @@ struct fuse_write_in {


struct fuse_write_out {
struct fuse_write_out {
	__u32	size;
	__u32	size;
	__u32	padding;
};
};


struct fuse_statfs_out {
struct fuse_statfs_out {
@@ -186,6 +197,7 @@ struct fuse_statfs_out {
struct fuse_fsync_in {
struct fuse_fsync_in {
	__u64	fh;
	__u64	fh;
	__u32	fsync_flags;
	__u32	fsync_flags;
	__u32	padding;
};
};


struct fuse_setxattr_in {
struct fuse_setxattr_in {
@@ -195,10 +207,12 @@ struct fuse_setxattr_in {


struct fuse_getxattr_in {
struct fuse_getxattr_in {
	__u32	size;
	__u32	size;
	__u32	padding;
};
};


struct fuse_getxattr_out {
struct fuse_getxattr_out {
	__u32	size;
	__u32	size;
	__u32	padding;
};
};


struct fuse_init_in_out {
struct fuse_init_in_out {
@@ -214,6 +228,7 @@ struct fuse_in_header {
	__u32	uid;
	__u32	uid;
	__u32	gid;
	__u32	gid;
	__u32	pid;
	__u32	pid;
	__u32	padding;
};
};


struct fuse_out_header {
struct fuse_out_header {