bfs: extra sanity checking and static inode bitmap
Strengthen validation of BFS superblock against corruption. Make in-core inode bitmap static part of superblock info structure. Print a warning when mounting a BFS filesystem created with "-N 512" option as only 510 files can be created in the root directory. Make the kernel messages more uniform. Update the 'prefix' passed to bfs_dump_imap() to match the current naming of operations. White space and comments cleanup. Link: http://lkml.kernel.org/r/CAK+_RLkFZMduoQF36wZFd3zLi-6ZutWKsydjeHFNdtRvZZEb4w@mail.gmail.com Signed-off-by: Tigran Aivazian <aivazian.tigran@gmail.com> Reported-by: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:

committed by
Linus Torvalds

parent
655c16a8ce
commit
d187715589
11
fs/bfs/bfs.h
11
fs/bfs/bfs.h
@@ -1,13 +1,20 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* fs/bfs/bfs.h
|
||||
* Copyright (C) 1999 Tigran Aivazian <tigran@veritas.com>
|
||||
* Copyright (C) 1999-2018 Tigran Aivazian <aivazian.tigran@gmail.com>
|
||||
*/
|
||||
#ifndef _FS_BFS_BFS_H
|
||||
#define _FS_BFS_BFS_H
|
||||
|
||||
#include <linux/bfs_fs.h>
|
||||
|
||||
/* In theory BFS supports up to 512 inodes, numbered from 2 (for /) up to 513 inclusive.
|
||||
In actual fact, attempting to create the 512th inode (i.e. inode No. 513 or file No. 511)
|
||||
will fail with ENOSPC in bfs_add_entry(): the root directory cannot contain so many entries, counting '..'.
|
||||
So, mkfs.bfs(8) should really limit its -N option to 511 and not 512. For now, we just print a warning
|
||||
if a filesystem is mounted with such "impossible to fill up" number of inodes */
|
||||
#define BFS_MAX_LASTI 513
|
||||
|
||||
/*
|
||||
* BFS file system in-core superblock info
|
||||
*/
|
||||
@@ -17,7 +24,7 @@ struct bfs_sb_info {
|
||||
unsigned long si_freei;
|
||||
unsigned long si_lf_eblk;
|
||||
unsigned long si_lasti;
|
||||
unsigned long *si_imap;
|
||||
DECLARE_BITMAP(si_imap, BFS_MAX_LASTI+1);
|
||||
struct mutex bfs_lock;
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user