diff options
Diffstat (limited to 'xlators/features/trash/src/trash.h')
| -rw-r--r-- | xlators/features/trash/src/trash.h | 80 | 
1 files changed, 80 insertions, 0 deletions
diff --git a/xlators/features/trash/src/trash.h b/xlators/features/trash/src/trash.h new file mode 100644 index 00000000000..7f0e13085b1 --- /dev/null +++ b/xlators/features/trash/src/trash.h @@ -0,0 +1,80 @@ +/* +  Copyright (c) 2006, 2007, 2008 Z RESEARCH, Inc. <http://www.zresearch.com> +  This file is part of GlusterFS. + +  GlusterFS is free software; you can redistribute it and/or modify +  it under the terms of the GNU General Public License as published +  by the Free Software Foundation; either version 3 of the License, +  or (at your option) any later version. + +  GlusterFS is distributed in the hope that it will be useful, but +  WITHOUT ANY WARRANTY; without even the implied warranty of +  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU +  General Public License for more details. + +  You should have received a copy of the GNU General Public License +  along with this program.  If not, see +  <http://www.gnu.org/licenses/>. +*/ + +#ifndef __TRASH_H__ +#define __TRASH_H__ + +#ifndef _CONFIG_H +#define _CONFIG_H +#include "config.h" +#endif + +#include "glusterfs.h" +#include "logging.h" +#include "dict.h" +#include "xlator.h" +#include "defaults.h" +#include "inode.c" +#include "fnmatch.h" + +#include <libgen.h> + +#ifndef GF_BLOCK_READV_SIZE +#define GF_BLOCK_READV_SIZE      (128 * GF_UNIT_KB) +#endif + +#ifndef GF_DEFAULT_MAX_FILE_SIZE +#define GF_DEFAULT_MAX_FILE_SIZE (200 * GF_UNIT_MB) +#endif + +#ifndef GF_ALLOWED_MAX_FILE_SIZE +#define GF_ALLOWED_MAX_FILE_SIZE (1 * GF_UNIT_GB) +#endif + + +struct trash_struct { +        fd_t    *fd;         /* for the fd of existing file */ +        fd_t    *newfd;      /* for the newly created file */ +        loc_t    loc;        /* to store the location of the existing file */ +        loc_t    newloc;     /* to store the location for the new file */ +        size_t   fsize;      /* for keeping the size of existing file */ +        off_t    cur_offset; /* current offset for read and write ops */ +        off_t    fop_offset; +        char     origpath[PATH_MAX]; +        char     newpath[PATH_MAX]; +        int32_t  loop_count; +        struct stat preparent; +        struct stat postparent; +}; +typedef struct trash_struct trash_local_t; + +struct _trash_elim_pattern; +typedef struct _trash_elim_pattern { +        struct _trash_elim_pattern *next; +        char                       *pattern; +} trash_elim_pattern_t; + +struct trash_priv { +        char                 *trash_dir; +        trash_elim_pattern_t *eliminate; +        size_t                max_trash_file_size; +}; +typedef struct trash_priv trash_private_t; + +#endif /* __TRASH_H__ */  | 
