Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  xfs_trans_space.c

  Sprache: C
 

// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (c) 2000,2005 Silicon Graphics, Inc.
 * All Rights Reserved.
 */

#include "xfs.h"
#include "xfs_fs.h"
#include "xfs_shared.h"
#include "xfs_format.h"
#include "xfs_da_format.h"
#include "xfs_log_format.h"
#include "xfs_trans_resv.h"
#include "xfs_mount.h"
#include "xfs_da_btree.h"
#include "xfs_bmap_btree.h"
#include "xfs_trans_space.h"

/* Calculate the disk space required to add a parent pointer. */
unsigned int
xfs_parent_calc_space_res(
 struct xfs_mount *mp,
 unsigned int  namelen)
{
 /*
 * Parent pointers are always the first attr in an attr tree, and never
 * larger than a block
 */

 return XFS_DAENTER_SPACE_RES(mp, XFS_ATTR_FORK) +
        XFS_NEXTENTADD_SPACE_RES(mp, namelen, XFS_ATTR_FORK);
}

unsigned int
xfs_create_space_res(
 struct xfs_mount *mp,
 unsigned int  namelen)
{
 unsigned int  ret;

 ret = XFS_IALLOC_SPACE_RES(mp) + XFS_DIRENTER_SPACE_RES(mp, namelen);
 if (xfs_has_parent(mp))
  ret += xfs_parent_calc_space_res(mp, namelen);

 return ret;
}

unsigned int
xfs_mkdir_space_res(
 struct xfs_mount *mp,
 unsigned int  namelen)
{
 return xfs_create_space_res(mp, namelen);
}

unsigned int
xfs_link_space_res(
 struct xfs_mount *mp,
 unsigned int  namelen)
{
 unsigned int  ret;

 ret = XFS_DIRENTER_SPACE_RES(mp, namelen);
 if (xfs_has_parent(mp))
  ret += xfs_parent_calc_space_res(mp, namelen);

 return ret;
}

unsigned int
xfs_symlink_space_res(
 struct xfs_mount *mp,
 unsigned int  namelen,
 unsigned int  fsblocks)
{
 unsigned int  ret;

 ret = XFS_IALLOC_SPACE_RES(mp) + XFS_DIRENTER_SPACE_RES(mp, namelen) +
   fsblocks;

 if (xfs_has_parent(mp))
  ret += xfs_parent_calc_space_res(mp, namelen);

 return ret;
}

unsigned int
xfs_remove_space_res(
 struct xfs_mount *mp,
 unsigned int  namelen)
{
 unsigned int  ret = XFS_DIRREMOVE_SPACE_RES(mp);

 if (xfs_has_parent(mp))
  ret += xfs_parent_calc_space_res(mp, namelen);

 return ret;
}

unsigned int
xfs_rename_space_res(
 struct xfs_mount *mp,
 unsigned int  src_namelen,
 bool   target_exists,
 unsigned int  target_namelen,
 bool   has_whiteout)
{
 unsigned int  ret;

 ret = XFS_DIRREMOVE_SPACE_RES(mp) +
   XFS_DIRENTER_SPACE_RES(mp, target_namelen);

 if (xfs_has_parent(mp)) {
  if (has_whiteout)
   ret += xfs_parent_calc_space_res(mp, src_namelen);
  ret += 2 * xfs_parent_calc_space_res(mp, target_namelen);
 }

 if (target_exists)
  ret += xfs_parent_calc_space_res(mp, target_namelen);

 return ret;
}

Messung V0.5 in Prozent
C=95 H=89 G=91

¤ Dauer der Verarbeitung: 0.10 Sekunden  (vorverarbeitet am  2026-06-07) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=141584
#Domains=752002