Commit 442d207e authored by Anton Altaparmakov's avatar Anton Altaparmakov
Browse files

NTFS: Use C99 style structure initialization after memory allocation where


      possible (fs/ntfs/{attrib.c,index.c,super.c}).  Thanks to Al Viro and
      Pekka Enberg.

Signed-off-by: default avatarAnton Altaparmakov <aia21@cantab.net>
parent 2fb21db2
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -116,6 +116,9 @@ ToDo/Notes:
	- Use MAX_BUF_PER_PAGE instead of variable sized array allocation for
	  better code generation and one less sparse warning in fs/ntfs/aops.c.
	- Remove spurious void pointer casts from fs/ntfs/.  (Pekka Enberg)
	- Use C99 style structure initialization after memory allocation where
	  possible (fs/ntfs/{attrib.c,index.c,super.c}).  Thanks to Al Viro and
	  Pekka Enberg.

2.1.22 - Many bug and race fixes and error handling improvements.

+8 −9
Original line number Diff line number Diff line
@@ -982,15 +982,14 @@ int ntfs_attr_lookup(const ATTR_TYPE type, const ntfschar *name,
static inline void ntfs_attr_init_search_ctx(ntfs_attr_search_ctx *ctx,
		ntfs_inode *ni, MFT_RECORD *mrec)
{
	ctx->mrec = mrec;
	*ctx = (ntfs_attr_search_ctx) {
		.mrec = mrec,
		/* Sanity checks are performed elsewhere. */
	ctx->attr = (ATTR_RECORD*)((u8*)mrec + le16_to_cpu(mrec->attrs_offset));
	ctx->is_first = TRUE;
	ctx->ntfs_ino = ni;
	ctx->al_entry = NULL;
	ctx->base_ntfs_ino = NULL;
	ctx->base_mrec = NULL;
	ctx->base_attr = NULL;
		.attr = (ATTR_RECORD*)((u8*)mrec +
				le16_to_cpu(mrec->attrs_offset)),
		.is_first = TRUE,
		.ntfs_ino = ni,
	};
}

/**
+3 −13
Original line number Diff line number Diff line
/*
 * index.c - NTFS kernel index handling.  Part of the Linux-NTFS project.
 *
 * Copyright (c) 2004 Anton Altaparmakov
 * Copyright (c) 2004-2005 Anton Altaparmakov
 *
 * This program/include file is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as published
@@ -39,18 +39,8 @@ ntfs_index_context *ntfs_index_ctx_get(ntfs_inode *idx_ni)
	ntfs_index_context *ictx;

	ictx = kmem_cache_alloc(ntfs_index_ctx_cache, SLAB_NOFS);
	if (ictx) {
		ictx->idx_ni = idx_ni;
		ictx->entry = NULL;
		ictx->data = NULL;
		ictx->data_len = 0;
		ictx->is_in_root = 0;
		ictx->ir = NULL;
		ictx->actx = NULL;
		ictx->base_ni = NULL;
		ictx->ia = NULL;
		ictx->page = NULL;
	}
	if (ictx)
		*ictx = (ntfs_index_context){ .idx_ni = idx_ni };
	return ictx;
}

+11 −28
Original line number Diff line number Diff line
@@ -2292,36 +2292,19 @@ static int ntfs_fill_super(struct super_block *sb, void *opt, const int silent)
		return -ENOMEM;
	}
	/* Initialize ntfs_volume structure. */
	memset(vol, 0, sizeof(ntfs_volume));
	vol->sb = sb;
	vol->upcase = NULL;
	vol->attrdef = NULL;
	vol->mft_ino = NULL;
	vol->mftbmp_ino = NULL;
	init_rwsem(&vol->mftbmp_lock);
#ifdef NTFS_RW
	vol->mftmirr_ino = NULL;
	vol->logfile_ino = NULL;
#endif /* NTFS_RW */
	vol->lcnbmp_ino = NULL;
	init_rwsem(&vol->lcnbmp_lock);
	vol->vol_ino = NULL;
	vol->root_ino = NULL;
	vol->secure_ino = NULL;
	vol->extend_ino = NULL;
#ifdef NTFS_RW
	vol->quota_ino = NULL;
	vol->quota_q_ino = NULL;
#endif /* NTFS_RW */
	vol->nls_map = NULL;

	*vol = (ntfs_volume) {
		.sb = sb,
		/*
		 * Default is group and other don't have any access to files or
	 * directories while owner has full access. Further, files by default
	 * are not executable but directories are of course browseable.
		 * directories while owner has full access. Further, files by
		 * default are not executable but directories are of course
		 * browseable.
		 */
	vol->fmask = 0177;
	vol->dmask = 0077;
		.fmask = 0177,
		.dmask = 0077,
	};
	init_rwsem(&vol->mftbmp_lock);
	init_rwsem(&vol->lcnbmp_lock);

	unlock_kernel();