Skip to content

Commit

Permalink
Merge tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fsc…
Browse files Browse the repository at this point in the history
…rypt/fscrypt

Pull fsverity updates from Eric Biggers:
 "Fix kerneldoc warnings and some coding style inconsistencies.

  This mirrors the similar cleanups being done in fs/crypto/"

* tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt:
  fs-verity: remove unnecessary extern keywords
  fs-verity: fix all kerneldoc warnings
  • Loading branch information
Linus Torvalds committed Jun 1, 2020
2 parents afdb0f2 + 9cd6b59 commit 4d67829
Show file tree
Hide file tree
Showing 7 changed files with 24 additions and 10 deletions.
2 changes: 2 additions & 0 deletions fs/verity/enable.c
Original file line number Diff line number Diff line change
Expand Up @@ -329,6 +329,8 @@ static int enable_verity(struct file *filp,

/**
* fsverity_ioctl_enable() - enable verity on a file
* @filp: file to enable verity on
* @uarg: user pointer to fsverity_enable_arg
*
* Enable fs-verity on a file. See the "FS_IOC_ENABLE_VERITY" section of
* Documentation/filesystems/fsverity.rst for the documentation.
Expand Down
4 changes: 2 additions & 2 deletions fs/verity/fsverity_private.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ struct merkle_tree_params {
u64 level_start[FS_VERITY_MAX_LEVELS];
};

/**
/*
* fsverity_info - cached verity metadata for an inode
*
* When a verity file is first opened, an instance of this struct is allocated
Expand Down Expand Up @@ -134,7 +134,7 @@ void __init fsverity_check_hash_algs(void);

/* init.c */

extern void __printf(3, 4) __cold
void __printf(3, 4) __cold
fsverity_msg(const struct inode *inode, const char *level,
const char *fmt, ...);

Expand Down
2 changes: 2 additions & 0 deletions fs/verity/measure.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@

/**
* fsverity_ioctl_measure() - get a verity file's measurement
* @filp: file to get measurement of
* @_uarg: user pointer to fsverity_digest
*
* Retrieve the file measurement that the kernel is enforcing for reads from a
* verity file. See the "FS_IOC_MEASURE_VERITY" section of
Expand Down
1 change: 1 addition & 0 deletions fs/verity/open.c
Original file line number Diff line number Diff line change
Expand Up @@ -330,6 +330,7 @@ EXPORT_SYMBOL_GPL(fsverity_prepare_setattr);

/**
* fsverity_cleanup_inode() - free the inode's verity info, if present
* @inode: an inode being evicted
*
* Filesystems must call this on inode eviction to free ->i_verity_info.
*/
Expand Down
3 changes: 3 additions & 0 deletions fs/verity/signature.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@ static struct key *fsverity_keyring;

/**
* fsverity_verify_signature() - check a verity file's signature
* @vi: the file's fsverity_info
* @desc: the file's fsverity_descriptor
* @desc_size: size of @desc
*
* If the file's fs-verity descriptor includes a signature of the file
* measurement, verify it against the certificates in the fs-verity keyring.
Expand Down
3 changes: 3 additions & 0 deletions fs/verity/verify.c
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,7 @@ static bool verify_page(struct inode *inode, const struct fsverity_info *vi,

/**
* fsverity_verify_page() - verify a data page
* @page: the page to verity
*
* Verify a page that has just been read from a verity file. The page must be a
* pagecache page that is still locked and not yet uptodate.
Expand Down Expand Up @@ -206,6 +207,7 @@ EXPORT_SYMBOL_GPL(fsverity_verify_page);
#ifdef CONFIG_BLOCK
/**
* fsverity_verify_bio() - verify a 'read' bio that has just completed
* @bio: the bio to verify
*
* Verify a set of pages that have just been read from a verity file. The pages
* must be pagecache pages that are still locked and not yet uptodate. Pages
Expand Down Expand Up @@ -264,6 +266,7 @@ EXPORT_SYMBOL_GPL(fsverity_verify_bio);

/**
* fsverity_enqueue_verify_work() - enqueue work on the fs-verity workqueue
* @work: the work to enqueue
*
* Enqueue verification work for asynchronous processing.
*/
Expand Down
19 changes: 11 additions & 8 deletions include/linux/fsverity.h
Original file line number Diff line number Diff line change
Expand Up @@ -121,23 +121,23 @@ static inline struct fsverity_info *fsverity_get_info(const struct inode *inode)

/* enable.c */

extern int fsverity_ioctl_enable(struct file *filp, const void __user *arg);
int fsverity_ioctl_enable(struct file *filp, const void __user *arg);

/* measure.c */

extern int fsverity_ioctl_measure(struct file *filp, void __user *arg);
int fsverity_ioctl_measure(struct file *filp, void __user *arg);

/* open.c */

extern int fsverity_file_open(struct inode *inode, struct file *filp);
extern int fsverity_prepare_setattr(struct dentry *dentry, struct iattr *attr);
extern void fsverity_cleanup_inode(struct inode *inode);
int fsverity_file_open(struct inode *inode, struct file *filp);
int fsverity_prepare_setattr(struct dentry *dentry, struct iattr *attr);
void fsverity_cleanup_inode(struct inode *inode);

/* verify.c */

extern bool fsverity_verify_page(struct page *page);
extern void fsverity_verify_bio(struct bio *bio);
extern void fsverity_enqueue_verify_work(struct work_struct *work);
bool fsverity_verify_page(struct page *page);
void fsverity_verify_bio(struct bio *bio);
void fsverity_enqueue_verify_work(struct work_struct *work);

#else /* !CONFIG_FS_VERITY */

Expand Down Expand Up @@ -200,13 +200,16 @@ static inline void fsverity_enqueue_verify_work(struct work_struct *work)

/**
* fsverity_active() - do reads from the inode need to go through fs-verity?
* @inode: inode to check
*
* This checks whether ->i_verity_info has been set.
*
* Filesystems call this from ->readpages() to check whether the pages need to
* be verified or not. Don't use IS_VERITY() for this purpose; it's subject to
* a race condition where the file is being read concurrently with
* FS_IOC_ENABLE_VERITY completing. (S_VERITY is set before ->i_verity_info.)
*
* Return: true if reads need to go through fs-verity, otherwise false
*/
static inline bool fsverity_active(const struct inode *inode)
{
Expand Down

0 comments on commit 4d67829

Please sign in to comment.