Orangefs: kernel client part 1
OrangeFS (formerly PVFS) is an lgpl licensed userspace networked parallel
file system. OrangeFS can be accessed through included system utilities,
user integration libraries, MPI-IO and can be used by the Hadoop
ecosystem as an alternative to the HDFS filesystem. OrangeFS is used
widely for parallel science, data analytics and engineering applications.
While applications often don't require Orangefs to be mounted into
the VFS, users do like to be able to access their files in the normal way.
The Orangefs kernel client allows Orangefs filesystems to be mounted as
a VFS. The kernel client communicates with a userspace daemon which in
turn communicates with the Orangefs server daemons that implement the
filesystem. The server daemons (there's almost always more than one)
need not be running on the same host as the kernel client.
Orangefs filesystems can also be mounted with FUSE, and we
ship code and instructions to facilitate that, but most of our users
report preferring to use our kernel module instead. Further, as an example
of a problem we can't solve with fuse, we have in the works a
not-yet-ready-for-prime-time version of a file_operations lock function
that accounts for the server daemons being distributed across more
than one running kernel.
Many people and organizations, including Clemson University,
Argonne National Laboratories and Acxiom Corporation have
helped to create what has become Orangefs over more than twenty
years. Some of the more recent contributors to the kernel client
include:
Mike Marshall
Christoph Hellwig
Randy Martin
Becky Ligon
Walt Ligon
Michael Moore
Rob Ross
Phil Carnes
Signed-off-by: Mike Marshall <hubcap@omnibond.com>
2015-07-17 14:38:11 +00:00
|
|
|
/*
|
|
|
|
* (C) 2001 Clemson University and The University of Chicago
|
|
|
|
*
|
|
|
|
* See COPYING in top-level directory.
|
|
|
|
*/
|
|
|
|
|
2015-11-24 20:12:14 +00:00
|
|
|
#ifndef _ORANGEFS_DEV_PROTO_H
|
|
|
|
#define _ORANGEFS_DEV_PROTO_H
|
Orangefs: kernel client part 1
OrangeFS (formerly PVFS) is an lgpl licensed userspace networked parallel
file system. OrangeFS can be accessed through included system utilities,
user integration libraries, MPI-IO and can be used by the Hadoop
ecosystem as an alternative to the HDFS filesystem. OrangeFS is used
widely for parallel science, data analytics and engineering applications.
While applications often don't require Orangefs to be mounted into
the VFS, users do like to be able to access their files in the normal way.
The Orangefs kernel client allows Orangefs filesystems to be mounted as
a VFS. The kernel client communicates with a userspace daemon which in
turn communicates with the Orangefs server daemons that implement the
filesystem. The server daemons (there's almost always more than one)
need not be running on the same host as the kernel client.
Orangefs filesystems can also be mounted with FUSE, and we
ship code and instructions to facilitate that, but most of our users
report preferring to use our kernel module instead. Further, as an example
of a problem we can't solve with fuse, we have in the works a
not-yet-ready-for-prime-time version of a file_operations lock function
that accounts for the server daemons being distributed across more
than one running kernel.
Many people and organizations, including Clemson University,
Argonne National Laboratories and Acxiom Corporation have
helped to create what has become Orangefs over more than twenty
years. Some of the more recent contributors to the kernel client
include:
Mike Marshall
Christoph Hellwig
Randy Martin
Becky Ligon
Walt Ligon
Michael Moore
Rob Ross
Phil Carnes
Signed-off-by: Mike Marshall <hubcap@omnibond.com>
2015-07-17 14:38:11 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
* types and constants shared between user space and kernel space for
|
|
|
|
* device interaction using a common protocol
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*
|
2015-11-24 20:12:14 +00:00
|
|
|
* valid orangefs kernel operation types
|
Orangefs: kernel client part 1
OrangeFS (formerly PVFS) is an lgpl licensed userspace networked parallel
file system. OrangeFS can be accessed through included system utilities,
user integration libraries, MPI-IO and can be used by the Hadoop
ecosystem as an alternative to the HDFS filesystem. OrangeFS is used
widely for parallel science, data analytics and engineering applications.
While applications often don't require Orangefs to be mounted into
the VFS, users do like to be able to access their files in the normal way.
The Orangefs kernel client allows Orangefs filesystems to be mounted as
a VFS. The kernel client communicates with a userspace daemon which in
turn communicates with the Orangefs server daemons that implement the
filesystem. The server daemons (there's almost always more than one)
need not be running on the same host as the kernel client.
Orangefs filesystems can also be mounted with FUSE, and we
ship code and instructions to facilitate that, but most of our users
report preferring to use our kernel module instead. Further, as an example
of a problem we can't solve with fuse, we have in the works a
not-yet-ready-for-prime-time version of a file_operations lock function
that accounts for the server daemons being distributed across more
than one running kernel.
Many people and organizations, including Clemson University,
Argonne National Laboratories and Acxiom Corporation have
helped to create what has become Orangefs over more than twenty
years. Some of the more recent contributors to the kernel client
include:
Mike Marshall
Christoph Hellwig
Randy Martin
Becky Ligon
Walt Ligon
Michael Moore
Rob Ross
Phil Carnes
Signed-off-by: Mike Marshall <hubcap@omnibond.com>
2015-07-17 14:38:11 +00:00
|
|
|
*/
|
2015-11-24 20:12:14 +00:00
|
|
|
#define ORANGEFS_VFS_OP_INVALID 0xFF000000
|
|
|
|
#define ORANGEFS_VFS_OP_FILE_IO 0xFF000001
|
|
|
|
#define ORANGEFS_VFS_OP_LOOKUP 0xFF000002
|
|
|
|
#define ORANGEFS_VFS_OP_CREATE 0xFF000003
|
|
|
|
#define ORANGEFS_VFS_OP_GETATTR 0xFF000004
|
|
|
|
#define ORANGEFS_VFS_OP_REMOVE 0xFF000005
|
|
|
|
#define ORANGEFS_VFS_OP_MKDIR 0xFF000006
|
|
|
|
#define ORANGEFS_VFS_OP_READDIR 0xFF000007
|
|
|
|
#define ORANGEFS_VFS_OP_SETATTR 0xFF000008
|
|
|
|
#define ORANGEFS_VFS_OP_SYMLINK 0xFF000009
|
|
|
|
#define ORANGEFS_VFS_OP_RENAME 0xFF00000A
|
|
|
|
#define ORANGEFS_VFS_OP_STATFS 0xFF00000B
|
|
|
|
#define ORANGEFS_VFS_OP_TRUNCATE 0xFF00000C
|
2016-08-02 18:31:05 +00:00
|
|
|
#define ORANGEFS_VFS_OP_RA_FLUSH 0xFF00000D
|
2015-11-24 20:12:14 +00:00
|
|
|
#define ORANGEFS_VFS_OP_FS_MOUNT 0xFF00000E
|
|
|
|
#define ORANGEFS_VFS_OP_FS_UMOUNT 0xFF00000F
|
|
|
|
#define ORANGEFS_VFS_OP_GETXATTR 0xFF000010
|
|
|
|
#define ORANGEFS_VFS_OP_SETXATTR 0xFF000011
|
|
|
|
#define ORANGEFS_VFS_OP_LISTXATTR 0xFF000012
|
|
|
|
#define ORANGEFS_VFS_OP_REMOVEXATTR 0xFF000013
|
|
|
|
#define ORANGEFS_VFS_OP_PARAM 0xFF000014
|
|
|
|
#define ORANGEFS_VFS_OP_PERF_COUNT 0xFF000015
|
|
|
|
#define ORANGEFS_VFS_OP_CANCEL 0xFF00EE00
|
|
|
|
#define ORANGEFS_VFS_OP_FSYNC 0xFF00EE01
|
|
|
|
#define ORANGEFS_VFS_OP_FSKEY 0xFF00EE02
|
|
|
|
#define ORANGEFS_VFS_OP_READDIRPLUS 0xFF00EE03
|
2016-08-12 16:02:31 +00:00
|
|
|
#define ORANGEFS_VFS_OP_FEATURES 0xFF00EE05 /* 2.9.6 */
|
|
|
|
|
|
|
|
/* features is a 64-bit unsigned bitmask */
|
|
|
|
#define ORANGEFS_FEATURE_READAHEAD 1
|
Orangefs: kernel client part 1
OrangeFS (formerly PVFS) is an lgpl licensed userspace networked parallel
file system. OrangeFS can be accessed through included system utilities,
user integration libraries, MPI-IO and can be used by the Hadoop
ecosystem as an alternative to the HDFS filesystem. OrangeFS is used
widely for parallel science, data analytics and engineering applications.
While applications often don't require Orangefs to be mounted into
the VFS, users do like to be able to access their files in the normal way.
The Orangefs kernel client allows Orangefs filesystems to be mounted as
a VFS. The kernel client communicates with a userspace daemon which in
turn communicates with the Orangefs server daemons that implement the
filesystem. The server daemons (there's almost always more than one)
need not be running on the same host as the kernel client.
Orangefs filesystems can also be mounted with FUSE, and we
ship code and instructions to facilitate that, but most of our users
report preferring to use our kernel module instead. Further, as an example
of a problem we can't solve with fuse, we have in the works a
not-yet-ready-for-prime-time version of a file_operations lock function
that accounts for the server daemons being distributed across more
than one running kernel.
Many people and organizations, including Clemson University,
Argonne National Laboratories and Acxiom Corporation have
helped to create what has become Orangefs over more than twenty
years. Some of the more recent contributors to the kernel client
include:
Mike Marshall
Christoph Hellwig
Randy Martin
Becky Ligon
Walt Ligon
Michael Moore
Rob Ross
Phil Carnes
Signed-off-by: Mike Marshall <hubcap@omnibond.com>
2015-07-17 14:38:11 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
* Misc constants. Please retain them as multiples of 8!
|
|
|
|
* Otherwise 32-64 bit interactions will be messed up :)
|
|
|
|
*/
|
2017-02-07 17:41:02 +00:00
|
|
|
#define ORANGEFS_MAX_DEBUG_STRING_LEN 0x00000800
|
Orangefs: kernel client part 1
OrangeFS (formerly PVFS) is an lgpl licensed userspace networked parallel
file system. OrangeFS can be accessed through included system utilities,
user integration libraries, MPI-IO and can be used by the Hadoop
ecosystem as an alternative to the HDFS filesystem. OrangeFS is used
widely for parallel science, data analytics and engineering applications.
While applications often don't require Orangefs to be mounted into
the VFS, users do like to be able to access their files in the normal way.
The Orangefs kernel client allows Orangefs filesystems to be mounted as
a VFS. The kernel client communicates with a userspace daemon which in
turn communicates with the Orangefs server daemons that implement the
filesystem. The server daemons (there's almost always more than one)
need not be running on the same host as the kernel client.
Orangefs filesystems can also be mounted with FUSE, and we
ship code and instructions to facilitate that, but most of our users
report preferring to use our kernel module instead. Further, as an example
of a problem we can't solve with fuse, we have in the works a
not-yet-ready-for-prime-time version of a file_operations lock function
that accounts for the server daemons being distributed across more
than one running kernel.
Many people and organizations, including Clemson University,
Argonne National Laboratories and Acxiom Corporation have
helped to create what has become Orangefs over more than twenty
years. Some of the more recent contributors to the kernel client
include:
Mike Marshall
Christoph Hellwig
Randy Martin
Becky Ligon
Walt Ligon
Michael Moore
Rob Ross
Phil Carnes
Signed-off-by: Mike Marshall <hubcap@omnibond.com>
2015-07-17 14:38:11 +00:00
|
|
|
|
|
|
|
/*
|
2016-01-04 20:05:28 +00:00
|
|
|
* The maximum number of directory entries in a single request is 96.
|
|
|
|
* XXX: Why can this not be higher. The client-side code can handle up to 512.
|
|
|
|
* XXX: What happens if we expect more than the client can return?
|
|
|
|
*/
|
|
|
|
#define ORANGEFS_MAX_DIRENT_COUNT_READDIR 96
|
Orangefs: kernel client part 1
OrangeFS (formerly PVFS) is an lgpl licensed userspace networked parallel
file system. OrangeFS can be accessed through included system utilities,
user integration libraries, MPI-IO and can be used by the Hadoop
ecosystem as an alternative to the HDFS filesystem. OrangeFS is used
widely for parallel science, data analytics and engineering applications.
While applications often don't require Orangefs to be mounted into
the VFS, users do like to be able to access their files in the normal way.
The Orangefs kernel client allows Orangefs filesystems to be mounted as
a VFS. The kernel client communicates with a userspace daemon which in
turn communicates with the Orangefs server daemons that implement the
filesystem. The server daemons (there's almost always more than one)
need not be running on the same host as the kernel client.
Orangefs filesystems can also be mounted with FUSE, and we
ship code and instructions to facilitate that, but most of our users
report preferring to use our kernel module instead. Further, as an example
of a problem we can't solve with fuse, we have in the works a
not-yet-ready-for-prime-time version of a file_operations lock function
that accounts for the server daemons being distributed across more
than one running kernel.
Many people and organizations, including Clemson University,
Argonne National Laboratories and Acxiom Corporation have
helped to create what has become Orangefs over more than twenty
years. Some of the more recent contributors to the kernel client
include:
Mike Marshall
Christoph Hellwig
Randy Martin
Becky Ligon
Walt Ligon
Michael Moore
Rob Ross
Phil Carnes
Signed-off-by: Mike Marshall <hubcap@omnibond.com>
2015-07-17 14:38:11 +00:00
|
|
|
|
|
|
|
#include "upcall.h"
|
|
|
|
#include "downcall.h"
|
|
|
|
|
|
|
|
#endif
|