Commit 09e70bb4 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'for_v5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs

Pull ext2, udf, reiserfs, quota cleanups and minor fixes from Jan Kara:
 "A few ext2 fixups and then several (mostly comment and documentation)
  cleanups in ext2, udf, reiserfs, and quota"

* tag 'for_v5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
  reiserfs: delete duplicated words
  udf: osta_udf.h: delete a duplicated word
  reiserfs: reiserfs.h: delete a duplicated word
  ext2: ext2.h: fix duplicated word + typos
  udf: Replace HTTP links with HTTPS ones
  quota: Fixup http links in quota doc
  Replace HTTP links with HTTPS ones: DISKQUOTA
  ext2: initialize quota info in ext2_xattr_set()
  ext2: fix some incorrect comments in inode.c
  ext2: remove nocheck option
  ext2: fix missing percpu_counter_inc
  ext2: ext2_find_entry() return -ENOENT if no entry found
  ext2: propagate errors up to ext2_find_entry()'s callers
  ext2: fix improper assignment for e_value_offs
parents 019c407c 9436fb4d
...@@ -18,7 +18,7 @@ Quota limits (and amount of grace time) are set independently for each ...@@ -18,7 +18,7 @@ Quota limits (and amount of grace time) are set independently for each
filesystem. filesystem.
For more details about quota design, see the documentation in quota-tools package For more details about quota design, see the documentation in quota-tools package
(http://sourceforge.net/projects/linuxquota). (https://sourceforge.net/projects/linuxquota).
Quota netlink interface Quota netlink interface
======================= =======================
...@@ -31,11 +31,11 @@ the above events to userspace. There they can be captured by an application ...@@ -31,11 +31,11 @@ the above events to userspace. There they can be captured by an application
and processed accordingly. and processed accordingly.
The interface uses generic netlink framework (see The interface uses generic netlink framework (see
http://lwn.net/Articles/208755/ and http://people.suug.ch/~tgr/libnl/ for more https://lwn.net/Articles/208755/ and http://www.infradead.org/~tgr/libnl/ for
details about this layer). The name of the quota generic netlink interface more details about this layer). The name of the quota generic netlink interface
is "VFS_DQUOT". Definitions of constants below are in <linux/quota.h>. is "VFS_DQUOT". Definitions of constants below are in <linux/quota.h>. Since
Since the quota netlink protocol is not namespace aware, quota netlink messages the quota netlink protocol is not namespace aware, quota netlink messages are
are sent only in initial network namespace. sent only in initial network namespace.
Currently, the interface supports only one message type QUOTA_NL_C_WARNING. Currently, the interface supports only one message type QUOTA_NL_C_WARNING.
This command is used to send a notification about any of the above mentioned This command is used to send a notification about any of the above mentioned
......
...@@ -72,4 +72,4 @@ For the latest version and toolset see: ...@@ -72,4 +72,4 @@ For the latest version and toolset see:
Documentation on UDF and ECMA 167 is available FREE from: Documentation on UDF and ECMA 167 is available FREE from:
- http://www.osta.org/ - http://www.osta.org/
- http://www.ecma-international.org/ - https://www.ecma-international.org/
...@@ -348,7 +348,6 @@ struct ext2_dir_entry_2 *ext2_find_entry (struct inode *dir, ...@@ -348,7 +348,6 @@ struct ext2_dir_entry_2 *ext2_find_entry (struct inode *dir,
struct page *page = NULL; struct page *page = NULL;
struct ext2_inode_info *ei = EXT2_I(dir); struct ext2_inode_info *ei = EXT2_I(dir);
ext2_dirent * de; ext2_dirent * de;
int dir_has_error = 0;
if (npages == 0) if (npages == 0)
goto out; goto out;
...@@ -362,8 +361,10 @@ struct ext2_dir_entry_2 *ext2_find_entry (struct inode *dir, ...@@ -362,8 +361,10 @@ struct ext2_dir_entry_2 *ext2_find_entry (struct inode *dir,
n = start; n = start;
do { do {
char *kaddr; char *kaddr;
page = ext2_get_page(dir, n, dir_has_error); page = ext2_get_page(dir, n, 0);
if (!IS_ERR(page)) { if (IS_ERR(page))
return ERR_CAST(page);
kaddr = page_address(page); kaddr = page_address(page);
de = (ext2_dirent *) kaddr; de = (ext2_dirent *) kaddr;
kaddr += ext2_last_byte(dir, n) - reclen; kaddr += ext2_last_byte(dir, n) - reclen;
...@@ -374,13 +375,11 @@ struct ext2_dir_entry_2 *ext2_find_entry (struct inode *dir, ...@@ -374,13 +375,11 @@ struct ext2_dir_entry_2 *ext2_find_entry (struct inode *dir,
ext2_put_page(page); ext2_put_page(page);
goto out; goto out;
} }
if (ext2_match (namelen, name, de)) if (ext2_match(namelen, name, de))
goto found; goto found;
de = ext2_next_entry(de); de = ext2_next_entry(de);
} }
ext2_put_page(page); ext2_put_page(page);
} else
dir_has_error = 1;
if (++n >= npages) if (++n >= npages)
n = 0; n = 0;
...@@ -394,7 +393,7 @@ struct ext2_dir_entry_2 *ext2_find_entry (struct inode *dir, ...@@ -394,7 +393,7 @@ struct ext2_dir_entry_2 *ext2_find_entry (struct inode *dir,
} }
} while (n != start); } while (n != start);
out: out:
return NULL; return ERR_PTR(-ENOENT);
found: found:
*res_page = page; *res_page = page;
...@@ -414,18 +413,18 @@ struct ext2_dir_entry_2 * ext2_dotdot (struct inode *dir, struct page **p) ...@@ -414,18 +413,18 @@ struct ext2_dir_entry_2 * ext2_dotdot (struct inode *dir, struct page **p)
return de; return de;
} }
ino_t ext2_inode_by_name(struct inode *dir, const struct qstr *child) int ext2_inode_by_name(struct inode *dir, const struct qstr *child, ino_t *ino)
{ {
ino_t res = 0;
struct ext2_dir_entry_2 *de; struct ext2_dir_entry_2 *de;
struct page *page; struct page *page;
de = ext2_find_entry (dir, child, &page); de = ext2_find_entry(dir, child, &page);
if (de) { if (IS_ERR(de))
res = le32_to_cpu(de->inode); return PTR_ERR(de);
*ino = le32_to_cpu(de->inode);
ext2_put_page(page); ext2_put_page(page);
} return 0;
return res;
} }
static int ext2_prepare_chunk(struct page *page, loff_t pos, unsigned len) static int ext2_prepare_chunk(struct page *page, loff_t pos, unsigned len)
......
...@@ -52,8 +52,8 @@ struct ext2_block_alloc_info { ...@@ -52,8 +52,8 @@ struct ext2_block_alloc_info {
/* /*
* Was i_next_alloc_goal in ext2_inode_info * Was i_next_alloc_goal in ext2_inode_info
* is the *physical* companion to i_next_alloc_block. * is the *physical* companion to i_next_alloc_block.
* it the the physical block number of the block which was most-recentl * it is the physical block number of the block which was most-recently
* allocated to this file. This give us the goal (target) for the next * allocated to this file. This gives us the goal (target) for the next
* allocation when we detect linearly ascending requests. * allocation when we detect linearly ascending requests.
*/ */
ext2_fsblk_t last_alloc_physical_block; ext2_fsblk_t last_alloc_physical_block;
...@@ -374,7 +374,6 @@ struct ext2_inode { ...@@ -374,7 +374,6 @@ struct ext2_inode {
/* /*
* Mount flags * Mount flags
*/ */
#define EXT2_MOUNT_CHECK 0x000001 /* Do mount-time checks */
#define EXT2_MOUNT_OLDALLOC 0x000002 /* Don't use the new Orlov allocator */ #define EXT2_MOUNT_OLDALLOC 0x000002 /* Don't use the new Orlov allocator */
#define EXT2_MOUNT_GRPID 0x000004 /* Create files with directory's group */ #define EXT2_MOUNT_GRPID 0x000004 /* Create files with directory's group */
#define EXT2_MOUNT_DEBUG 0x000008 /* Some debugging messages */ #define EXT2_MOUNT_DEBUG 0x000008 /* Some debugging messages */
...@@ -738,7 +737,8 @@ extern void ext2_rsv_window_add(struct super_block *sb, struct ext2_reserve_wind ...@@ -738,7 +737,8 @@ extern void ext2_rsv_window_add(struct super_block *sb, struct ext2_reserve_wind
/* dir.c */ /* dir.c */
extern int ext2_add_link (struct dentry *, struct inode *); extern int ext2_add_link (struct dentry *, struct inode *);
extern ino_t ext2_inode_by_name(struct inode *, const struct qstr *); extern int ext2_inode_by_name(struct inode *dir,
const struct qstr *child, ino_t *ino);
extern int ext2_make_empty(struct inode *, struct inode *); extern int ext2_make_empty(struct inode *, struct inode *);
extern struct ext2_dir_entry_2 * ext2_find_entry (struct inode *,const struct qstr *, struct page **); extern struct ext2_dir_entry_2 * ext2_find_entry (struct inode *,const struct qstr *, struct page **);
extern int ext2_delete_entry (struct ext2_dir_entry_2 *, struct page *); extern int ext2_delete_entry (struct ext2_dir_entry_2 *, struct page *);
......
...@@ -80,6 +80,7 @@ static void ext2_release_inode(struct super_block *sb, int group, int dir) ...@@ -80,6 +80,7 @@ static void ext2_release_inode(struct super_block *sb, int group, int dir)
if (dir) if (dir)
le16_add_cpu(&desc->bg_used_dirs_count, -1); le16_add_cpu(&desc->bg_used_dirs_count, -1);
spin_unlock(sb_bgl_lock(EXT2_SB(sb), group)); spin_unlock(sb_bgl_lock(EXT2_SB(sb), group));
percpu_counter_inc(&EXT2_SB(sb)->s_freeinodes_counter);
if (dir) if (dir)
percpu_counter_dec(&EXT2_SB(sb)->s_dirs_counter); percpu_counter_dec(&EXT2_SB(sb)->s_dirs_counter);
mark_buffer_dirty(bh); mark_buffer_dirty(bh);
...@@ -528,7 +529,7 @@ struct inode *ext2_new_inode(struct inode *dir, umode_t mode, ...@@ -528,7 +529,7 @@ struct inode *ext2_new_inode(struct inode *dir, umode_t mode,
goto fail; goto fail;
} }
percpu_counter_add(&sbi->s_freeinodes_counter, -1); percpu_counter_dec(&sbi->s_freeinodes_counter);
if (S_ISDIR(mode)) if (S_ISDIR(mode))
percpu_counter_inc(&sbi->s_dirs_counter); percpu_counter_inc(&sbi->s_dirs_counter);
......
...@@ -356,8 +356,7 @@ static inline ext2_fsblk_t ext2_find_goal(struct inode *inode, long block, ...@@ -356,8 +356,7 @@ static inline ext2_fsblk_t ext2_find_goal(struct inode *inode, long block,
* @blks: number of data blocks to be mapped. * @blks: number of data blocks to be mapped.
* @blocks_to_boundary: the offset in the indirect block * @blocks_to_boundary: the offset in the indirect block
* *
* return the total number of blocks to be allocate, including the * return the number of direct blocks to allocate.
* direct and indirect blocks.
*/ */
static int static int
ext2_blks_to_allocate(Indirect * branch, int k, unsigned long blks, ext2_blks_to_allocate(Indirect * branch, int k, unsigned long blks,
...@@ -390,11 +389,9 @@ ext2_blks_to_allocate(Indirect * branch, int k, unsigned long blks, ...@@ -390,11 +389,9 @@ ext2_blks_to_allocate(Indirect * branch, int k, unsigned long blks,
* ext2_alloc_blocks: multiple allocate blocks needed for a branch * ext2_alloc_blocks: multiple allocate blocks needed for a branch
* @indirect_blks: the number of blocks need to allocate for indirect * @indirect_blks: the number of blocks need to allocate for indirect
* blocks * blocks
* * @blks: the number of blocks need to allocate for direct blocks
* @new_blocks: on return it will store the new block numbers for * @new_blocks: on return it will store the new block numbers for
* the indirect blocks(if needed) and the first direct block, * the indirect blocks(if needed) and the first direct block,
* @blks: on return it will store the total number of allocated
* direct blocks
*/ */
static int ext2_alloc_blocks(struct inode *inode, static int ext2_alloc_blocks(struct inode *inode,
ext2_fsblk_t goal, int indirect_blks, int blks, ext2_fsblk_t goal, int indirect_blks, int blks,
......
...@@ -57,13 +57,17 @@ static struct dentry *ext2_lookup(struct inode * dir, struct dentry *dentry, uns ...@@ -57,13 +57,17 @@ static struct dentry *ext2_lookup(struct inode * dir, struct dentry *dentry, uns
{ {
struct inode * inode; struct inode * inode;
ino_t ino; ino_t ino;
int res;
if (dentry->d_name.len > EXT2_NAME_LEN) if (dentry->d_name.len > EXT2_NAME_LEN)
return ERR_PTR(-ENAMETOOLONG); return ERR_PTR(-ENAMETOOLONG);
ino = ext2_inode_by_name(dir, &dentry->d_name); res = ext2_inode_by_name(dir, &dentry->d_name, &ino);
if (res) {
if (res != -ENOENT)
return ERR_PTR(res);
inode = NULL; inode = NULL;
if (ino) { } else {
inode = ext2_iget(dir->i_sb, ino); inode = ext2_iget(dir->i_sb, ino);
if (inode == ERR_PTR(-ESTALE)) { if (inode == ERR_PTR(-ESTALE)) {
ext2_error(dir->i_sb, __func__, ext2_error(dir->i_sb, __func__,
...@@ -78,9 +82,13 @@ static struct dentry *ext2_lookup(struct inode * dir, struct dentry *dentry, uns ...@@ -78,9 +82,13 @@ static struct dentry *ext2_lookup(struct inode * dir, struct dentry *dentry, uns
struct dentry *ext2_get_parent(struct dentry *child) struct dentry *ext2_get_parent(struct dentry *child)
{ {
struct qstr dotdot = QSTR_INIT("..", 2); struct qstr dotdot = QSTR_INIT("..", 2);
unsigned long ino = ext2_inode_by_name(d_inode(child), &dotdot); ino_t ino;
if (!ino) int res;
return ERR_PTR(-ENOENT);
res = ext2_inode_by_name(d_inode(child), &dotdot, &ino);
if (res)
return ERR_PTR(res);
return d_obtain_alias(ext2_iget(child->d_sb, ino)); return d_obtain_alias(ext2_iget(child->d_sb, ino));
} }
...@@ -274,9 +282,9 @@ static int ext2_unlink(struct inode * dir, struct dentry *dentry) ...@@ -274,9 +282,9 @@ static int ext2_unlink(struct inode * dir, struct dentry *dentry)
if (err) if (err)
goto out; goto out;
de = ext2_find_entry (dir, &dentry->d_name, &page); de = ext2_find_entry(dir, &dentry->d_name, &page);
if (!de) { if (IS_ERR(de)) {
err = -ENOENT; err = PTR_ERR(de);
goto out; goto out;
} }
...@@ -330,9 +338,9 @@ static int ext2_rename (struct inode * old_dir, struct dentry * old_dentry, ...@@ -330,9 +338,9 @@ static int ext2_rename (struct inode * old_dir, struct dentry * old_dentry,
if (err) if (err)
goto out; goto out;
old_de = ext2_find_entry (old_dir, &old_dentry->d_name, &old_page); old_de = ext2_find_entry(old_dir, &old_dentry->d_name, &old_page);
if (!old_de) { if (IS_ERR(old_de)) {
err = -ENOENT; err = PTR_ERR(old_de);
goto out; goto out;
} }
...@@ -351,10 +359,11 @@ static int ext2_rename (struct inode * old_dir, struct dentry * old_dentry, ...@@ -351,10 +359,11 @@ static int ext2_rename (struct inode * old_dir, struct dentry * old_dentry,
if (dir_de && !ext2_empty_dir (new_inode)) if (dir_de && !ext2_empty_dir (new_inode))
goto out_dir; goto out_dir;
err = -ENOENT; new_de = ext2_find_entry(new_dir, &new_dentry->d_name, &new_page);
new_de = ext2_find_entry (new_dir, &new_dentry->d_name, &new_page); if (IS_ERR(new_de)) {
if (!new_de) err = PTR_ERR(new_de);
goto out_dir; goto out_dir;
}
ext2_set_link(new_dir, new_de, new_page, old_inode, 1); ext2_set_link(new_dir, new_de, new_page, old_inode, 1);
new_inode->i_ctime = current_time(new_inode); new_inode->i_ctime = current_time(new_inode);
if (dir_de) if (dir_de)
......
...@@ -431,7 +431,7 @@ static unsigned long get_sb_block(void **data) ...@@ -431,7 +431,7 @@ static unsigned long get_sb_block(void **data)
enum { enum {
Opt_bsd_df, Opt_minix_df, Opt_grpid, Opt_nogrpid, Opt_bsd_df, Opt_minix_df, Opt_grpid, Opt_nogrpid,
Opt_resgid, Opt_resuid, Opt_sb, Opt_err_cont, Opt_err_panic, Opt_resgid, Opt_resuid, Opt_sb, Opt_err_cont, Opt_err_panic,
Opt_err_ro, Opt_nouid32, Opt_nocheck, Opt_debug, Opt_err_ro, Opt_nouid32, Opt_debug,
Opt_oldalloc, Opt_orlov, Opt_nobh, Opt_user_xattr, Opt_nouser_xattr, Opt_oldalloc, Opt_orlov, Opt_nobh, Opt_user_xattr, Opt_nouser_xattr,
Opt_acl, Opt_noacl, Opt_xip, Opt_dax, Opt_ignore, Opt_err, Opt_quota, Opt_acl, Opt_noacl, Opt_xip, Opt_dax, Opt_ignore, Opt_err, Opt_quota,
Opt_usrquota, Opt_grpquota, Opt_reservation, Opt_noreservation Opt_usrquota, Opt_grpquota, Opt_reservation, Opt_noreservation
...@@ -451,8 +451,6 @@ static const match_table_t tokens = { ...@@ -451,8 +451,6 @@ static const match_table_t tokens = {
{Opt_err_panic, "errors=panic"}, {Opt_err_panic, "errors=panic"},
{Opt_err_ro, "errors=remount-ro"}, {Opt_err_ro, "errors=remount-ro"},
{Opt_nouid32, "nouid32"}, {Opt_nouid32, "nouid32"},
{Opt_nocheck, "check=none"},
{Opt_nocheck, "nocheck"},
{Opt_debug, "debug"}, {Opt_debug, "debug"},
{Opt_oldalloc, "oldalloc"}, {Opt_oldalloc, "oldalloc"},
{Opt_orlov, "orlov"}, {Opt_orlov, "orlov"},
...@@ -546,12 +544,6 @@ static int parse_options(char *options, struct super_block *sb, ...@@ -546,12 +544,6 @@ static int parse_options(char *options, struct super_block *sb,
case Opt_nouid32: case Opt_nouid32:
set_opt (opts->s_mount_opt, NO_UID32); set_opt (opts->s_mount_opt, NO_UID32);
break; break;
case Opt_nocheck:
ext2_msg(sb, KERN_WARNING,
"Option nocheck/check=none is deprecated and"
" will be removed in June 2020.");
clear_opt (opts->s_mount_opt, CHECK);
break;
case Opt_debug: case Opt_debug:
set_opt (opts->s_mount_opt, DEBUG); set_opt (opts->s_mount_opt, DEBUG);
break; break;
......
...@@ -437,6 +437,9 @@ ext2_xattr_set(struct inode *inode, int name_index, const char *name, ...@@ -437,6 +437,9 @@ ext2_xattr_set(struct inode *inode, int name_index, const char *name,
name_len = strlen(name); name_len = strlen(name);
if (name_len > 255 || value_len > sb->s_blocksize) if (name_len > 255 || value_len > sb->s_blocksize)
return -ERANGE; return -ERANGE;
error = dquot_initialize(inode);
if (error)
return error;
down_write(&EXT2_I(inode)->xattr_sem); down_write(&EXT2_I(inode)->xattr_sem);
if (EXT2_I(inode)->i_file_acl) { if (EXT2_I(inode)->i_file_acl) {
/* The inode already has an extended attribute block. */ /* The inode already has an extended attribute block. */
...@@ -588,7 +591,6 @@ ext2_xattr_set(struct inode *inode, int name_index, const char *name, ...@@ -588,7 +591,6 @@ ext2_xattr_set(struct inode *inode, int name_index, const char *name,
/* Remove the old value. */ /* Remove the old value. */
memmove(first_val + size, first_val, val - first_val); memmove(first_val + size, first_val, val - first_val);
memset(first_val, 0, size); memset(first_val, 0, size);
here->e_value_offs = 0;
min_offs += size; min_offs += size;
/* Adjust all value offsets. */ /* Adjust all value offsets. */
...@@ -600,6 +602,8 @@ ext2_xattr_set(struct inode *inode, int name_index, const char *name, ...@@ -600,6 +602,8 @@ ext2_xattr_set(struct inode *inode, int name_index, const char *name,
cpu_to_le16(o + size); cpu_to_le16(o + size);
last = EXT2_XATTR_NEXT(last); last = EXT2_XATTR_NEXT(last);
} }
here->e_value_offs = 0;
} }
if (value == NULL) { if (value == NULL) {
/* Remove the old name. */ /* Remove the old name. */
......
...@@ -15,7 +15,7 @@ config QUOTA ...@@ -15,7 +15,7 @@ config QUOTA
Ext3, ext4 and reiserfs also support journaled quotas for which Ext3, ext4 and reiserfs also support journaled quotas for which
you don't need to run quotacheck(8) after an unclean shutdown. you don't need to run quotacheck(8) after an unclean shutdown.
For further details, read the Quota mini-HOWTO, available from For further details, read the Quota mini-HOWTO, available from
<http://www.tldp.org/docs.html#howto>, or the documentation provided <https://www.tldp.org/docs.html#howto>, or the documentation provided
with the quota tools. Probably the quota support is only useful for with the quota tools. Probably the quota support is only useful for
multi user systems. If unsure, say N. multi user systems. If unsure, say N.
......
...@@ -289,7 +289,7 @@ void make_empty_dir_item_v1(char *body, __le32 dirid, __le32 objid, ...@@ -289,7 +289,7 @@ void make_empty_dir_item_v1(char *body, __le32 dirid, __le32 objid,
/* direntry header of "." */ /* direntry header of "." */
put_deh_offset(dot, DOT_OFFSET); put_deh_offset(dot, DOT_OFFSET);
/* these two are from make_le_item_head, and are are LE */ /* these two are from make_le_item_head, and are LE */
dot->deh_dir_id = dirid; dot->deh_dir_id = dirid;
dot->deh_objectid = objid; dot->deh_objectid = objid;
dot->deh_state = 0; /* Endian safe if 0 */ dot->deh_state = 0; /* Endian safe if 0 */
...@@ -299,7 +299,7 @@ void make_empty_dir_item_v1(char *body, __le32 dirid, __le32 objid, ...@@ -299,7 +299,7 @@ void make_empty_dir_item_v1(char *body, __le32 dirid, __le32 objid,
/* direntry header of ".." */ /* direntry header of ".." */
put_deh_offset(dotdot, DOT_DOT_OFFSET); put_deh_offset(dotdot, DOT_DOT_OFFSET);
/* key of ".." for the root directory */ /* key of ".." for the root directory */
/* these two are from the inode, and are are LE */ /* these two are from the inode, and are LE */
dotdot->deh_dir_id = par_dirid; dotdot->deh_dir_id = par_dirid;
dotdot->deh_objectid = par_objid; dotdot->deh_objectid = par_objid;
dotdot->deh_state = 0; /* Endian safe if 0 */ dotdot->deh_state = 0; /* Endian safe if 0 */
...@@ -323,7 +323,7 @@ void make_empty_dir_item(char *body, __le32 dirid, __le32 objid, ...@@ -323,7 +323,7 @@ void make_empty_dir_item(char *body, __le32 dirid, __le32 objid,
/* direntry header of "." */ /* direntry header of "." */
put_deh_offset(dot, DOT_OFFSET); put_deh_offset(dot, DOT_OFFSET);
/* these two are from make_le_item_head, and are are LE */ /* these two are from make_le_item_head, and are LE */
dot->deh_dir_id = dirid; dot->deh_dir_id = dirid;
dot->deh_objectid = objid; dot->deh_objectid = objid;
dot->deh_state = 0; /* Endian safe if 0 */ dot->deh_state = 0; /* Endian safe if 0 */
...@@ -333,7 +333,7 @@ void make_empty_dir_item(char *body, __le32 dirid, __le32 objid, ...@@ -333,7 +333,7 @@ void make_empty_dir_item(char *body, __le32 dirid, __le32 objid,
/* direntry header of ".." */ /* direntry header of ".." */
put_deh_offset(dotdot, DOT_DOT_OFFSET); put_deh_offset(dotdot, DOT_DOT_OFFSET);
/* key of ".." for the root directory */ /* key of ".." for the root directory */
/* these two are from the inode, and are are LE */ /* these two are from the inode, and are LE */
dotdot->deh_dir_id = par_dirid; dotdot->deh_dir_id = par_dirid;
dotdot->deh_objectid = par_objid; dotdot->deh_objectid = par_objid;
dotdot->deh_state = 0; /* Endian safe if 0 */ dotdot->deh_state = 0; /* Endian safe if 0 */
......
...@@ -611,9 +611,9 @@ static int get_num_ver(int mode, struct tree_balance *tb, int h, ...@@ -611,9 +611,9 @@ static int get_num_ver(int mode, struct tree_balance *tb, int h,
* blk_num number of blocks that S[h] will be splitted into; * blk_num number of blocks that S[h] will be splitted into;
* s012 number of items that fall into splitted nodes. * s012 number of items that fall into splitted nodes.
* lbytes number of bytes which flow to the left neighbor from the * lbytes number of bytes which flow to the left neighbor from the
* item that is not not shifted entirely * item that is not shifted entirely
* rbytes number of bytes which flow to the right neighbor from the * rbytes number of bytes which flow to the right neighbor from the
* item that is not not shifted entirely * item that is not shifted entirely
* s1bytes number of bytes which flow to the first new node when * s1bytes number of bytes which flow to the first new node when
* S[0] splits (this number is contained in s012 array) * S[0] splits (this number is contained in s012 array)
*/ */
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
* to disk for all backgrounded commits that have been * to disk for all backgrounded commits that have been
* around too long. * around too long.
* -- Note, if you call this as an immediate flush from * -- Note, if you call this as an immediate flush from
* from within kupdate, it will ignore the immediate flag * within kupdate, it will ignore the immediate flag
*/ */
#include <linux/time.h> #include <linux/time.h>
......
...@@ -1109,7 +1109,7 @@ int is_reiserfs_jr(struct reiserfs_super_block *rs); ...@@ -1109,7 +1109,7 @@ int is_reiserfs_jr(struct reiserfs_super_block *rs);
* ReiserFS leaves the first 64k unused, so that partition labels have * ReiserFS leaves the first 64k unused, so that partition labels have
* enough space. If someone wants to write a fancy bootloader that * enough space. If someone wants to write a fancy bootloader that
* needs more than 64k, let us know, and this will be increased in size. * needs more than 64k, let us know, and this will be increased in size.
* This number must be larger than than the largest block size on any * This number must be larger than the largest block size on any
* platform, or code will break. -Hans * platform, or code will break. -Hans
*/ */
#define REISERFS_DISK_OFFSET_IN_BYTES (64 * 1024) #define REISERFS_DISK_OFFSET_IN_BYTES (64 * 1024)
......
...@@ -373,7 +373,7 @@ int reiserfs_cache_default_acl(struct inode *inode) ...@@ -373,7 +373,7 @@ int reiserfs_cache_default_acl(struct inode *inode)
/* Other xattrs can be created during inode creation. We don't /* Other xattrs can be created during inode creation. We don't
* want to claim too many blocks, so we check to see if we * want to claim too many blocks, so we check to see if we
* we need to create the tree to the xattrs, and then we * need to create the tree to the xattrs, and then we
* just want two files. */ * just want two files. */
nblocks = reiserfs_xattr_jcreate_nblocks(inode); nblocks = reiserfs_xattr_jcreate_nblocks(inode);
nblocks += JOURNAL_BLOCKS_PER_OBJECT(inode->i_sb); nblocks += JOURNAL_BLOCKS_PER_OBJECT(inode->i_sb);
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* ecma_167.h * ecma_167.h
* *
* This file is based on ECMA-167 3rd edition (June 1997) * This file is based on ECMA-167 3rd edition (June 1997)
* http://www.ecma.ch * https://www.ecma.ch
* *
* Copyright (c) 2001-2002 Ben Fennema * Copyright (c) 2001-2002 Ben Fennema
* Copyright (c) 2017-2019 Pali Rohár <pali@kernel.org> * Copyright (c) 2017-2019 Pali Rohár <pali@kernel.org>
......
...@@ -226,7 +226,7 @@ struct sparingTable { ...@@ -226,7 +226,7 @@ struct sparingTable {
#define ICBTAG_FILE_TYPE_MIRROR 0xFB #define ICBTAG_FILE_TYPE_MIRROR 0xFB
#define ICBTAG_FILE_TYPE_BITMAP 0xFC #define ICBTAG_FILE_TYPE_BITMAP 0xFC
/* struct struct long_ad ICB - ADImpUse (UDF 2.60 2.2.4.3) */ /* struct long_ad ICB - ADImpUse (UDF 2.60 2.2.4.3) */
struct allocDescImpUse { struct allocDescImpUse {
__le16 flags; __le16 flags;
uint8_t impUse[4]; uint8_t impUse[4];
......
...@@ -11,8 +11,8 @@ ...@@ -11,8 +11,8 @@
* This code is based on version 2.00 of the UDF specification, * This code is based on version 2.00 of the UDF specification,
* and revision 3 of the ECMA 167 standard [equivalent to ISO 13346]. * and revision 3 of the ECMA 167 standard [equivalent to ISO 13346].
* http://www.osta.org/ * http://www.osta.org/
* http://www.ecma.ch/ * https://www.ecma.ch/
* http://www.iso.org/ * https://www.iso.org/
* *
* COPYRIGHT * COPYRIGHT
* This file is distributed under the terms of the GNU General Public * This file is distributed under the terms of the GNU General Public
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment