Changeset 6fe700c in rtems


Ignore:
Timestamp:
May 4, 2012, 11:30:53 AM (7 years ago)
Author:
Sebastian Huber <sebastian.huber@…>
Children:
1a05377
Parents:
7619a60 (diff), 2cd2ed3 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'upstream'

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cpukit/libfs/src/nfsclient/src/nfs.c

    r7619a60 r6fe700c  
    14941494{
    14951495int rv = 0;
    1496 NfsNode pNode;
     1496NfsNode pNode = parentloc->node_access;
    14971497nfsstat status;
    14981498NfsNode tNode = targetloc->node_access;
     
    20432043
    20442044        return (ssize_t) strlen(rr.strbuf.buf);
     2045}
     2046
     2047static int nfs_rename(
     2048        const rtems_filesystem_location_info_t *oldparentloc,
     2049        const rtems_filesystem_location_info_t *oldloc,
     2050        const rtems_filesystem_location_info_t *newparentloc,
     2051        const char *name,
     2052        size_t namelen
     2053)
     2054{
     2055        int rv = 0;
     2056        char *dupname = nfs_dupname(name, namelen);
     2057
     2058        if (dupname != NULL) {
     2059                NfsNode oldParentNode = oldparentloc->node_access;
     2060                NfsNode oldNode = oldloc->node_access;
     2061                NfsNode newParentNode = newparentloc->node_access;
     2062                Nfs nfs = oldParentNode->nfs;
     2063                const nfs_fh *toDirSrc = &SERP_FILE(newParentNode);
     2064                nfs_fh *toDirDst = &SERP_ARGS(oldParentNode).renamearg.to.dir;
     2065                nfsstat status;
     2066
     2067                SERP_ARGS(oldParentNode).renamearg.name = oldNode->str;
     2068                SERP_ARGS(oldParentNode).renamearg.to.name = dupname;
     2069                memcpy(toDirDst, toDirSrc, sizeof(*toDirDst));
     2070
     2071                rv = nfscall(
     2072                        nfs->server,
     2073                        NFSPROC_RENAME,
     2074                        (xdrproc_t) xdr_renameargs,
     2075                        &SERP_FILE(oldParentNode),
     2076                        (xdrproc_t) xdr_nfsstat,
     2077                        &status
     2078                );
     2079                if (rv == 0 && (errno = status) != NFS_OK) {
     2080                        rv = -1;
     2081                }
     2082
     2083                free(dupname);
     2084        } else {
     2085                rv = -1;
     2086        }
     2087
     2088        return rv;
    20452089}
    20462090
     
    21052149        .symlink_h      = nfs_symlink,
    21062150        .readlink_h     = nfs_readlink,
    2107         .rename_h       = rtems_filesystem_default_rename,
     2151        .rename_h       = nfs_rename,
    21082152        .statvfs_h      = rtems_filesystem_default_statvfs
    21092153};
Note: See TracChangeset for help on using the changeset viewer.