Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d53b47c0 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'upstream-3.16-rc1-v2' of git://git.infradead.org/linux-ubifs

Pull UBIFS updates from Artem Bityutskiy:
 "This contains several UBIFS fixes.  One of them fixes a race condition
  between the mmap page fault path and fsync.  Another just removes a
  bogus assertion from the UBIFS memory shrinker.

  UBIFS also started honoring the MS_SILENT mount flag, so now it won't
  print many I/O errors when user-space just tries to probe for the FS.

  Rest of the changes are rather minor UBI/UBIFS fixes, improvements,
  and clean-ups"

* tag 'upstream-3.16-rc1-v2' of git://git.infradead.org/linux-ubifs:
  UBIFS: Add an assertion for clean_zn_cnt
  UBIFS: respect MS_SILENT mount flag
  UBIFS: Remove incorrect assertion in shrink_tnc()
  UBIFS: fix debugging check
  UBIFS: add missing ui pointer in debugging code
  UBI: block: Fix error path on alloc_workqueue failure
  UBIFS: Fix dump messages in ubifs_dump_lprops
  UBI: fix rb_tree node comparison in add_map
  UBIFS: Remove unused variables in ubifs_budget_space
  UBI: weaken the 'exclusive' constraint when opening volumes to rename
  UBIFS: fix an mmap and fsync race condition
parents a3c54931 380347e9
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -432,8 +432,10 @@ int ubiblock_create(struct ubi_volume_info *vi)
	 * Rembember workqueues are cheap, they're not threads.
	 */
	dev->wq = alloc_workqueue("%s", 0, 0, gd->disk_name);
	if (!dev->wq)
	if (!dev->wq) {
		ret = -ENOMEM;
		goto out_free_queue;
	}
	INIT_WORK(&dev->work, ubiblock_do_work);

	mutex_lock(&devices_mutex);
+1 −1
Original line number Diff line number Diff line
@@ -731,7 +731,7 @@ static int rename_volumes(struct ubi_device *ubi,
			goto out_free;
		}

		re->desc = ubi_open_volume(ubi->ubi_num, vol_id, UBI_EXCLUSIVE);
		re->desc = ubi_open_volume(ubi->ubi_num, vol_id, UBI_READWRITE);
		if (IS_ERR(re->desc)) {
			err = PTR_ERR(re->desc);
			ubi_err("cannot open volume %d, error %d", vol_id, err);
+2 −2
Original line number Diff line number Diff line
@@ -125,9 +125,9 @@ static struct ubi_ainf_volume *add_vol(struct ubi_attach_info *ai, int vol_id,
		parent = *p;
		av = rb_entry(parent, struct ubi_ainf_volume, rb);

		if (vol_id > av->vol_id)
		if (vol_id < av->vol_id)
			p = &(*p)->rb_left;
		else if (vol_id > av->vol_id)
		else
			p = &(*p)->rb_right;
	}

+0 −1
Original line number Diff line number Diff line
@@ -437,7 +437,6 @@ static int calc_dd_growth(const struct ubifs_info *c,
 */
int ubifs_budget_space(struct ubifs_info *c, struct ubifs_budget_req *req)
{
	int uninitialized_var(cmt_retries), uninitialized_var(wb_retries);
	int err, idx_growth, data_growth, dd_growth, retried = 0;

	ubifs_assert(req->new_page <= 1);
+3 −1
Original line number Diff line number Diff line
@@ -745,8 +745,10 @@ void ubifs_dump_lprops(struct ubifs_info *c)

	for (lnum = c->main_first; lnum < c->leb_cnt; lnum++) {
		err = ubifs_read_one_lp(c, lnum, &lp);
		if (err)
		if (err) {
			ubifs_err("cannot read lprops for LEB %d", lnum);
			continue;
		}

		ubifs_dump_lprop(c, &lp);
	}
Loading