cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

buffer_head_io.h (1611B)


      1/* SPDX-License-Identifier: GPL-2.0-or-later */
      2/*
      3 * ocfs2_buffer_head.h
      4 *
      5 * Buffer cache handling functions defined
      6 *
      7 * Copyright (C) 2002, 2004 Oracle.  All rights reserved.
      8 */
      9
     10#ifndef OCFS2_BUFFER_HEAD_IO_H
     11#define OCFS2_BUFFER_HEAD_IO_H
     12
     13#include <linux/buffer_head.h>
     14
     15int ocfs2_write_block(struct ocfs2_super          *osb,
     16		      struct buffer_head  *bh,
     17		      struct ocfs2_caching_info   *ci);
     18int ocfs2_read_blocks_sync(struct ocfs2_super *osb, u64 block,
     19			   unsigned int nr, struct buffer_head *bhs[]);
     20
     21/*
     22 * If not NULL, validate() will be called on a buffer that is freshly
     23 * read from disk.  It will not be called if the buffer was in cache.
     24 * Note that if validate() is being used for this buffer, it needs to
     25 * be set even for a READAHEAD call, as it marks the buffer for later
     26 * validation.
     27 */
     28int ocfs2_read_blocks(struct ocfs2_caching_info *ci, u64 block, int nr,
     29		      struct buffer_head *bhs[], int flags,
     30		      int (*validate)(struct super_block *sb,
     31				      struct buffer_head *bh));
     32
     33int ocfs2_write_super_or_backup(struct ocfs2_super *osb,
     34				struct buffer_head *bh);
     35
     36#define OCFS2_BH_IGNORE_CACHE      1
     37#define OCFS2_BH_READAHEAD         8
     38
     39static inline int ocfs2_read_block(struct ocfs2_caching_info *ci, u64 off,
     40				   struct buffer_head **bh,
     41				   int (*validate)(struct super_block *sb,
     42						   struct buffer_head *bh))
     43{
     44	int status = 0;
     45
     46	if (bh == NULL) {
     47		printk("ocfs2: bh == NULL\n");
     48		status = -EINVAL;
     49		goto bail;
     50	}
     51
     52	status = ocfs2_read_blocks(ci, off, 1, bh, 0, validate);
     53
     54bail:
     55	return status;
     56}
     57
     58#endif /* OCFS2_BUFFER_HEAD_IO_H */