lkml.org 
[lkml]   [2006]   [Jun]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [RFC] Slimming down struct inode
    Nathan,

    On Thu, 15 Jun 2006, Nathan Scott wrote:
    >
    > There is no IRIX/Linux compatibility layer, you're misunderstanding
    > the code (which is understandable, its erm a bit crufty in places).

    You gotta be kidding. It does everything in terms of an SVR 4 VFS
    vnode and then converts that to Linux VFS on dentries/inodes. It was
    obviously built by stuffing the Linux VFS under SVR 4 VFS code and
    even documents the code as such. Things like:

    | /*
    | * XFS arguments structure, constructed from the arguments we
    | * are passed via the mount system call.
    | *
    | * NOTE: The mount system call is handled differently between
    | * Linux and IRIX. In IRIX we worked work with a binary data
    | * structure coming in across the syscall interface from user
    | * space (the mount userspace knows about each filesystem type
    | * and the set of valid options for it, and converts the users
    | * argument string into a binary structure _before_ making the
    | * system call), and the ABI issues that this implies.
    | *
    | * In Linux, we are passed a comma separated set of options;
    | * ie. a NULL terminated string of characters. Userspace mount
    | * code does not have any knowledge of mount options expected by
    | * each filesystem type and so each filesystem parses its mount
    | * options in kernel space.
    | *
    | * For the Linux port, we kept this structure pretty much intact
    | * and use it internally (because the existing code groks it).
    | */
    | struct xfs_mount_args {
    | int flags; /* flags -> see XFSMNT_... macros below */
    | int flags2; /* flags -> see XFSMNT2_... macros below */
    | int logbufs; /* Number of log buffers, -1 to default */
    | int logbufsize; /* Size of log buffers, -1 to default */
    | char fsname[MAXNAMELEN+1]; /* data device name */
    | char rtname[MAXNAMELEN+1]; /* realtime device filename */
    | char logname[MAXNAMELEN+1]; /* journal device filename */
    | char mtpt[MAXNAMELEN+1]; /* filesystem mount point */
    | int sunit; /* stripe unit (BBs) */
    | int swidth; /* stripe width (BBs), multiple of sunit */
    | uchar_t iosizelog; /* log2 of the preferred I/O size */
    | int ihashsize; /* inode hash table size (buckets) */
    | };

    No... No compatibility layer there.

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2006-06-15 10:48    [W:0.030 / U:0.344 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site