!C99Shell v. 1.0 pre-release build #13!

Software: Apache/2.0.54 (Unix) mod_perl/1.99_09 Perl/v5.8.0 mod_ssl/2.0.54 OpenSSL/0.9.7l DAV/2 FrontPage/5.0.2.2635 PHP/4.4.0 mod_gzip/2.0.26.1a 

uname -a: Linux snow.he.net 4.4.276-v2-mono-1 #1 SMP Wed Jul 21 11:21:17 PDT 2021 i686 

uid=99(nobody) gid=98(nobody) groups=98(nobody) 

Safe-mode: OFF (not secure)

/usr/src/linux-2.4.18-xfs-1.1/fs/xfs/   drwxr-xr-x
Free 318.39 GB of 458.09 GB (69.5%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     xfs_trans_extfree.c (3.98 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/*
 * Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
 * 
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of version 2 of the GNU General Public License as
 * published by the Free Software Foundation.
 * 
 * This program is distributed in the hope that it would be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * 
 * Further, this software is distributed without any warranty that it is
 * free of the rightful claim of any third person regarding infringement
 * or the like.  Any license provided herein, whether implied or
 * otherwise, applies only to this software file.  Patent licenses, if
 * any, provided herein do not apply to combinations of this program with
 * other software, or any other product whatsoever.
 * 
 * You should have received a copy of the GNU General Public License along
 * with this program; if not, write the Free Software Foundation, Inc., 59
 * Temple Place - Suite 330, Boston MA 02111-1307, USA.
 * 
 * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
 * Mountain View, CA  94043, or:
 * 
 * http://www.sgi.com 
 * 
 * For further information regarding this notice, see: 
 * 
 * http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
 */

#include <xfs.h>

/*
 * This routine is called to allocate an "extent free intention"
 * log item that will hold nextents worth of extents.  The
 * caller must use all nextents extents, because we are not
 * flexible about this at all.
 */
xfs_efi_log_item_t *
xfs_trans_get_efi(xfs_trans_t    *tp,
          uint        nextents)
{
    xfs_efi_log_item_t    *efip;

    ASSERT(tp != NULL);
    ASSERT(nextents > 0);

    efip = xfs_efi_init(tp->t_mountp, nextents);
    ASSERT(efip != NULL);

    /*
     * Get a log_item_desc to point at the new item.
     */
    (void) xfs_trans_add_item(tp, (xfs_log_item_t*)efip);

    return (efip);
}

/*
 * This routine is called to indicate that the described
 * extent is to be logged as needing to be freed.  It should
 * be called once for each extent to be freed.
 */
void
xfs_trans_log_efi_extent(xfs_trans_t        *tp,
             xfs_efi_log_item_t    *efip,
             xfs_fsblock_t        start_block,
             xfs_extlen_t        ext_len)
{
    xfs_log_item_desc_t    *lidp;
    uint            next_extent;
    xfs_extent_t        *extp;

    lidp = xfs_trans_find_item(tp, (xfs_log_item_t*)efip);
    ASSERT(lidp != NULL);

    tp->t_flags |= XFS_TRANS_DIRTY;
    lidp->lid_flags |= XFS_LID_DIRTY;

    next_extent = efip->efi_next_extent;
    ASSERT(next_extent < efip->efi_format.efi_nextents);
    extp = &(efip->efi_format.efi_extents[next_extent]);
    extp->ext_start = start_block;
    extp->ext_len = ext_len;
    efip->efi_next_extent++;
}


/*
 * This routine is called to allocate an "extent free done"
 * log item that will hold nextents worth of extents.  The
 * caller must use all nextents extents, because we are not
 * flexible about this at all.
 */
xfs_efd_log_item_t *
xfs_trans_get_efd(xfs_trans_t        *tp,
          xfs_efi_log_item_t    *efip,
          uint            nextents)
{
    xfs_efd_log_item_t    *efdp;

    ASSERT(tp != NULL);
    ASSERT(nextents > 0);

    efdp = xfs_efd_init(tp->t_mountp, efip, nextents);
    ASSERT(efdp != NULL);

    /*
     * Get a log_item_desc to point at the new item.
     */
    (void) xfs_trans_add_item(tp, (xfs_log_item_t*)efdp);

    return (efdp);
}

/*
 * This routine is called to indicate that the described
 * extent is to be logged as having been freed.  It should
 * be called once for each extent freed.
 */
void
xfs_trans_log_efd_extent(xfs_trans_t        *tp,
             xfs_efd_log_item_t    *efdp,
             xfs_fsblock_t        start_block,
             xfs_extlen_t        ext_len)
{
    xfs_log_item_desc_t    *lidp;
    uint            next_extent;
    xfs_extent_t        *extp;

    lidp = xfs_trans_find_item(tp, (xfs_log_item_t*)efdp);
    ASSERT(lidp != NULL);

    tp->t_flags |= XFS_TRANS_DIRTY;
    lidp->lid_flags |= XFS_LID_DIRTY;

    next_extent = efdp->efd_next_extent;
    ASSERT(next_extent < efdp->efd_format.efd_nextents);
    extp = &(efdp->efd_format.efd_extents[next_extent]);
    extp->ext_start = start_block;
    extp->ext_len = ext_len;
    efdp->efd_next_extent++;
}






:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0266 ]--