*/
void *cfs_stack_trace_frame(struct cfs_stack_trace *trace, int frame_no);
-#ifndef O_NOACCESS
-#define O_NOACCESS O_NONBLOCK
-#endif
-
-/*
- * Universal open flags.
- */
-#define CFS_O_NOACCESS 0003
-#define CFS_O_ACCMODE CFS_O_NOACCESS
-#define CFS_O_CREAT 0100
-#define CFS_O_EXCL 0200
-#define CFS_O_NOCTTY 0400
-#define CFS_O_TRUNC 01000
-#define CFS_O_APPEND 02000
-#define CFS_O_NONBLOCK 04000
-#define CFS_O_NDELAY CFS_O_NONBLOCK
-#define CFS_O_SYNC 010000
-#define CFS_O_ASYNC 020000
-#define CFS_O_DIRECT 040000
-#define CFS_O_LARGEFILE 0100000
-#define CFS_O_DIRECTORY 0200000
-#define CFS_O_NOFOLLOW 0400000
-#define CFS_O_NOATIME 01000000
-
-/* convert local open flags to universal open flags */
-int cfs_oflags2univ(int flags);
-/* convert universal open flags to local open flags */
-int cfs_univ2oflags(int flags);
-
/*
* Random number handling
*/
static struct posix_acl acl;
return &acl;
}
-
-/*
- * XXX Liang: I've not converted all of them,
- * more is needed?
- */
-int cfs_oflags2univ(int flags)
-{
- int f;
-
- f = flags & O_NOACCESS;
- f |= (flags & O_CREAT) ? CFS_O_CREAT: 0;
- f |= (flags & O_TRUNC) ? CFS_O_TRUNC: 0;
- f |= (flags & O_EXCL) ? CFS_O_EXCL: 0;
- f |= (flags & O_NONBLOCK) ? CFS_O_NONBLOCK: 0;
- f |= (flags & O_APPEND) ? CFS_O_APPEND: 0;
- f |= (flags & O_NOFOLLOW) ? CFS_O_NOFOLLOW: 0;
- f |= (flags & O_SYNC)? CFS_O_SYNC: 0;
- return f;
-}
-
-/*
- * XXX Liang: we don't need it in OSX.
- * But it should be implemented anyway.
- */
-int cfs_univ2oflags(int flags)
-{
- return flags;
-}
return size;
}
EXPORT_SYMBOL(filp_user_write);
-
-#if !(CFS_O_CREAT == O_CREAT && CFS_O_EXCL == O_EXCL && \
- CFS_O_NOACCESS == O_NOACCESS &&\
- CFS_O_TRUNC == O_TRUNC && CFS_O_APPEND == O_APPEND &&\
- CFS_O_NONBLOCK == O_NONBLOCK && CFS_O_NDELAY == O_NDELAY &&\
- CFS_O_SYNC == O_SYNC && CFS_O_ASYNC == FASYNC &&\
- CFS_O_DIRECT == O_DIRECT && CFS_O_LARGEFILE == O_LARGEFILE &&\
- CFS_O_DIRECTORY == O_DIRECTORY && CFS_O_NOFOLLOW == O_NOFOLLOW)
-
-int cfs_oflags2univ(int flags)
-{
- int f;
-
- f = flags & O_NOACCESS;
- f |= (flags & O_CREAT) ? CFS_O_CREAT: 0;
- f |= (flags & O_EXCL) ? CFS_O_EXCL: 0;
- f |= (flags & O_NOCTTY) ? CFS_O_NOCTTY: 0;
- f |= (flags & O_TRUNC) ? CFS_O_TRUNC: 0;
- f |= (flags & O_APPEND) ? CFS_O_APPEND: 0;
- f |= (flags & O_NONBLOCK) ? CFS_O_NONBLOCK: 0;
- f |= (flags & O_SYNC)? CFS_O_SYNC: 0;
- f |= (flags & FASYNC)? CFS_O_ASYNC: 0;
- f |= (flags & O_DIRECTORY)? CFS_O_DIRECTORY: 0;
- f |= (flags & O_DIRECT)? CFS_O_DIRECT: 0;
- f |= (flags & O_LARGEFILE)? CFS_O_LARGEFILE: 0;
- f |= (flags & O_NOFOLLOW)? CFS_O_NOFOLLOW: 0;
- f |= (flags & O_NOATIME)? CFS_O_NOATIME: 0;
- return f;
-}
-#else
-
-int cfs_oflags2univ(int flags)
-{
- return (flags);
-}
-#endif
-EXPORT_SYMBOL(cfs_oflags2univ);
-
-/*
- * XXX Liang: we don't need cfs_univ2oflags() now.
- */
-int cfs_univ2oflags(int flags)
-{
- return (flags);
-}
-EXPORT_SYMBOL(cfs_univ2oflags);
if (cl_is_lov_delay_create(flags))
cr_flags |= MDS_OPEN_DELAY_CREATE;
- if ((flags & O_NOACCESS) || (flags & O_NONBLOCK))
+ if (flags & O_NONBLOCK)
cr_flags |= MDS_OPEN_NORESTORE;
return cr_flags;