text:
Copper Colonialism in Zambia
Foil Vedanta have today released a report (embedded below) on the operations of Konkola Copper Mines (KCM) in Zambia. The report reveals that, contrary to popular opinion in Zambia, Vedanta (KCM's parent company) is not Indian but wholly British owned and controlled, and is making large profits at KCM. The report demonstrates Vedanta's pattern of buying undervalued state companies, polluting, and operating without permission all over the world. It also reveals how investment companies like Blackrock have controlling interests in Zambian copper as key shareholders behind Zambia's biggest mining companies.
Foil Vedanta's(1) report 'Copper Colonialism – Vedanta KCM and the copper loot of Zambia'is a groundbreaking study of copper mining in Zambia, focusing on British mining company Vedanta, KCM's parent company. The report reveals that Vedanta made approximately $362 million, or 12.9% of their total group revenue, from KCM in 2013 (according to the company itself and analyst reports)(2). The authors, who visited Zambia in December, note the number of misconceptions about this company in Zambia – where Vedanta has created the perception that they are an Indian company, and are making such a loss at KCM that they may need to be rescued by the state. In fact KCM are one of the highest profit making subsidiaries of the parent company.
The report details how Vedanta, a FTSE 250 London based company which is 67.99% owned by Chairman Anil Agarwal via tax havens, bought KCM for a fraction of its true value, possibly losing the Zambian exchequer up to $1.4bn in total.(3) It goes on to record some of the environmental and social abuses of the company in Zambia – including pollution of the river Kafue in 2006 and 2010 which have led to ongoing health problems as extreme as deformed births and miscarriages in the Chingola area, as well as poor workers conditions and low pay. Vedanta's tax contributions in Zambia are close to zero, and they even brag that 50% of tax paid is via employees Pay As You Earn (PAYE). Vedanta hide these truths in Zambia by paying former journalists as PR agents to keep their image clean.
The authors demonstrate that this style of operation is a pattern for Vedanta across India and elsewhere, where they are consistently opposed by people's movements and under investigation by authorities for corruption and legal violations. In Chhattisgarh, India, they bought BALCO's bauxite refinery, smelter and mines for $89 million in 2001 when it was worth around $800 million. Vedanta Chairman Anil Agarwal is currently under investigation by the Central Bureau of Investigations in India over the original disinvestment of 51% of Hindustan Zinc Ltd (HZL) to Vedanta for only $72 million, claiming the deal was considerably undervalued, and may have lost the exchequer hundreds of millions of dollars in revenue.
Vedanta's subsidiary Sesa Goa are accused of exporting 150 million tonnes of iron ore from Goa, India in 2010/11 while only declaring 7.6 million, their agreed export allowance. The report suggests that Vedanta may also be exporting considerably more copper than they claim in Zambia, as well as cobalt and other minerals, and recommends citizens monitoring of trucks leaving their facilities to estimate the true amounts.
The report also looks at the real interests behind mining companies in Zambia. Using shareholder information it shows that secretive investment company Blackrock have high percentages of shares in Vedanta, Glencore and First Quantum, Zambia's three biggest miners. Blackrock and JP Morgan are currently buying the majority of the worlds available copper to launch a futures market which will control the price of copper, giving them high returns on their investments while leaving copper producing nations in poverty.(4) The report also draws attention to foreign governments such as Norway and the UK, who play a duplicitous game of funding transparency and accountability projects on mining via NGOs and the Zambian government, while also profiting from the abuses of the very same mining companies.(5)
Author Samarendra Das says, "We were shocked to discover how little information Zambian authorities and communities have about their own resource and the companies exploiting it. Despite its role in the economy, copper is the elephant in the room in Zambia. This report aims to expose the real interests controlling Zambia's copper industry - from banks and investment firms to foreign governments and NGOs."
Co-author Miriam Rose states, "Mining companies are commonly called 'investors' in Zambia, but what they are doing is far from investment, it is short lived extraction and loot of resources, leaving behind only environmental and social damage which will be paid for by future generations. There is limited time left for Zambians to change the course of history, make links with peoples' movements opposing these policies elsewhere, and truly profit from this resource before it is all gone."
Foil Vedanta are a London based international solidarity group focusing on the activities of British mining company Vedanta. We link up global communities affected by Vedanta, and hold them to account in London. We are currently aiming to make the case for Vedanta to be de-listed from the London Stock Exchange for their human rights and corporate governance abuses.
Excerpt from report (p.12):
KCM and other mining companies in Zambia don't publish their profits, even though the Zambian taxpayer has a share in most of them via ZCCM-IH. However Vedanta's 2013 annual report claims KCM produced 216,000 tonnes of copper in 2013. In the same year costs of production were valued at 255.1 US cents/lb, putting the total cost of production that year at $1.2 billion, which would constitute a profit of $362 million (at a current copper price of $7,300). Analysts reports from Global Data reveal that KCM made 12.19% of revenue for the entire Vedanta group in 2012 so they are certainly not doing too badly.
Excerpt from report (p.6):
A 51% share in KCM was sold to Vedanta Resources for just $25 million, paid in cash, and $23million in deferred payments, in 200412. The deal was facilitated by Clifford Chance and Standard Chartered Bank13 (one of the main bookrunners and lenders to Vedanta Resources). Within three months Vedanta had already recouperated its initial investment, making $26 million. The banks also helped Vedanta secretly negotiate a call option allowing them the right to purchase Zambia Copper Investments' 28.4% share14, which they exercised in November 2005 (a year after their initial purchase), giving them the 79.4% monopoly they currently hold on KCM, while the Zambian government - via ZCCM-IH (their mining investment wing), own the remaining 20.6%. The Competition Commission was even rendered irrelevant by the Zambian government to allow Vedanta such a large majority share.
The price negotiated for the buyout of ZCI's remaining shares is not reported, but analysts at the time valued it between $250 million and $550 million, putting Vedanta's original 51% share at between $455 and $910 million, nine to eighteen times what Vedanta paid! This means the Zambian exchequer lost between $155 and $340 million in from the sale of 21.4% of ZCCMIH's shares alone. In response, ZCI's 33% French shareholders (grouped into a company called Sicovam SA) called the deal 'the most outrageous and scandalous ever seen in Africa for decades'.
This puts the value of the entire 79.4% share held by Vedanta at between $705 and $1460 million, losing the Zambian exchequer between $600 and $1400 million in undervalued assets.
Blackrock is the world's biggest asset management company, in charge of $4.1 trillion of assets (including much of Zambia's copper via its shares). It is bigger than any bank, insurance company or government fund, and is the majority shareholder in half of the world's 30 largest companies. It was set up by Larry Fink - a Washington insider who was named as a potential treasury secretary in the US. Blackrock, JP Morgan and Goldman Sachs are currently working together in an attempt to buy up 80% of available copper on behalf of investors, and hold it in warehouses. This will create a copper futures market enabling speculation, futures trading, and backing of new loans and funds.
In 2010 JP Morgan bought more than half of the available warehoused copper in a few weeks, leading to a spike in copper prices. Manufacturers and copper wholesalers warned the Securities and Exchange Commission (SEC) that such a monopoly on copper would squeeze the market and send prices skyrocketing but under pressure from Blackrock and the banks the SEC approved their proposal.1 The aluminium futures market set up by Goldman Sachs, on which the copper takeover is modelled, is estimated to have cost consumers billions of dollars in price hikes, as market manipulations sent prices soaring.2
(5) See section on NGOs and civil society, p.30 of report.
1 The New York Times, July 21st 2013, 'Next up Copper.'
2 David Kocieniewski, New York Times, July 20, 2013. 'The House Edge: A Shuffle of Aluminum, but to Banks, Pure Gold'
(Source: Foil Vendata, 31 January 2014, Press Release)
THEMES : mining
Anonymous 1 February 2014 at 05:37
This is a useful piece but the fact is that agarwal who owns 70 percent is Indian and 4 of the six members of the board are Indian also. Even oneof the other Bitish members of the board worked in India and probably met Agarwal there. It is simply a majority Indian owned company registered and headquartered in the UK. It is not really British.
Many companies register in a different country to where the majority ownership resides. Can be for tax.
Chola Mukanga 1 February 2014 at 08:50
I suppose it is a perfectly legitimate question of what makes a company Zambian or British! Certainly Facebook is American because of its operation HQ or is it Irish because of its tax HQ? It is probably better to say both!
I think Foil Vedanta are correct that Vedanta is Indo-British. The British government regulates its taxation activities and the company is understand its legal jurisdiction. The colour if the skin of those who run it does not eliminate its Britishness.
Ownership is important because in this era of transnational companies small governments like Zambia are powerless. Activists like Foil Vedanta need citizens in the home of these transnational companies to effect change. And one way of doing that is to call to attention what is being done by 'British' companies.
I very much agree with the last paragraph. Your previous post highlighted one of the methods transnational companies avoid paying tax in one country is by exaggerating their income in the low tax charging country and minimising their income in the high tax charging country.
Obama or was it Bush? complained about "US" companies registered overseas to avoid tax.
Starbucks etc in the UK are doing the same thing as Vedanta in Zambia.
http://www.bbc.co.uk/news/magazine-20560359.
It would seem that the cases may be different but if there is a way to avoid tax some transnational companies will do so.
I am certainly not defending Vedanta or the like. To me they lack ethics and moral values.
Miriam 5 February 2014 at 11:14
This is an excellent example of how Vedanta uses its ambiguous nationality to create confusion. It has done so in India too. The fact is that Vedanta is wholly British because:
a) It is answerable to British corporation/taxation law not Indian. Grievances with Vedanta would have to be taken to the UK government/legal system.
b) it is majority owned by a UK resident (Anil Agarwal) from finance in a British controlled tax haven (the Bahamas).
c) Not even 0.1% of Vedanta is owned by Indian finance and there is no Indian government interest in the company, while the UK government have openly lobbied for Vedanta to get deals (e.g http://www.foilvedanta.org/articles/uk-govt-support-for-cairn-and-vedanta-deal-revealed/)
Several people we spoke to in Zambia had strong feelings about Vedanta being Indian, and suggested either - that Zambia should support Indian companies like Vedanta, or that Indian companies like Vedanta have lower human rights/workers/environmental standards which explains their behaviour.
The reason we wanted to highlight the misinformation around the company's nationality is partly to show how little is really known about Vedanta (and other mining companies) by the Zambian elite and public. The pattern of abuses elsewhere is very important for Zambians to know.
Listed on the FTSE 250, but owned and controlled by a single individual living elsewhere. Doesn't have to be resident or tax resident in the UK to be listed there. If the shareholdings you've shown are right, I guess it will be de-listed fairly soon as the FTSE prefers more of the shares to be freely traded. If 65% are owned by one man, its not really a public company. Don't think anybody thinks that Facebook, or Apple or Amazon or Google are Irish companies, although they are all "resident"there. Follow the money!
http://www.bbc.co.uk/news/uk-23389695
Further to the above on transnational tax avoidance this post from the BBC shows the world wide scale of the problem and the attempts to rectify it.
Somed of your readers may think it is an emerging markets problem and not a world wide problem.
Maybe better times are coming but these proposals will never deal with corruption in Government.
MrK 1 February 2014 at 20:05
" The deal was facilitated by Clifford Chance and Standard Chartered Bank13 (one of the main bookrunners and lenders to Vedanta Resources). "
From the Board of Directors page at ZCCM-IH, and Wila D. Mung'omba's brief professional history:
"Mr. Wila D. Mung'omba served as President of African Development Bank. From 1995 to 1998, Mr. Mung'omba was World Bank's appointed Team Leader in the initial preparation of the ZCCM Limited privatization Report and Plan by the UK based Investment Bank NM, Rothschild & Sons and international law firm Clifford Chance."
The same banks that did the privatisation of ZCCM, back in 1998.
Standard Chartered Bank, like De Beers, was founded by Cecil Rhodes, when he was funded by NM Rothschild & Sons Ltd. in London.
http://www.rothschild.com/our_history/1880-1914/
"With the provision of funding for the creation of De Beers in 1887, Rothschild also turned to investment in the mining of precious stones, in Africa and India." Cecil Rhodes became the Founding Chairman of De Beers the following year, 1888.
Who owns Blackrock
The usual Big Four (multi-) trillion dollar investment/hedge funds make an entrance - FMR (Fidelity), Vanguard, State Street, Blackrock itself, as well as JPMorgan Chase (America's biggest bank and founded as Chase National Bank by the Rockefeller family which also founded Standard Oil Trust, which today is doing business as ExxonMobil, Chevron and probably Philips 66), Welllington Management Company. The biggest single shareholder is PNC Financial Services.
(PNC's shareholders: "Top 5 stock holdings are BLK (Blackrock), VFC, XOM [ExxonMobil, formerly Standard Oil of New Jersey and Standard Oil of New York - biggest shareholders: Schroder Investment Management, Vanguard State Street, BlackRock, as well Wellington, JPMorgan Chase], PG, GE [General Electric, which also owns either MSNBC or NBC]. These five stock positions account for 32.75% of PNC FINANCIAL SERVICES's total stock portfolio."
In other words, with the increased concentration of wealth worldwide, we are seeing that the biggest institutional shareholders in most major corporations, as well as eachother, are just four or six large banks/funds.
So the question is - who are the families who are behind these funds?
BlackRock CEO Laurence D. Fink is also a board member of the Council on Foreign Relations (CFR), and who started his career at First Boston Bank (also see here), where David Rockefeller is currently the Honorary Chairman.
BlackRock is part of the Blackstone Group, which itself was founded in 1985 by Peter G. Peterson and Stephen A. Schwarzman, both formerly of Lehman Brothers, Kuhn, Loeb Inc.
Peter G. Peterson is a former chairman of the Council on Foreign Relations, where David Rockefeller is currently the Honorary Chairman. Peter G. Peterson was preceded as CFR Chairman by David Rockefeller, and succeeded by Robert E. Rubin.
So, both co-founders of BlackRock are members of the Rockefeller Council on Foreign Relations.
Maybe they're all owned by the 4 R's - Rockfeller, Rothschild, Regina (QEII) and Regis (King Willem). I'm not that far evidence wise, but it would make lot of sense.
David Rockfeller is Honorary Chairman of the Council on Foreign Relations, and chairman/co-founder of the Bilderberg Group (1954) and the Trilateral Commission (1973).
Here is the official first membership list of 2013, of the David Rockefeller (ExxonMobil, Chevron, JPMorgan Chase) co-founded and chaired Trilateral Commission. David Rockfeller also founded the Bilderberg Group, with Prins Bernhard zu Lippe Biesterveld, spouse to the Dutch Queen Beatrix, who still opens the Bilderberg Meetings. See their Former Steering Committee membership list here.
Also interesting, if you look at the board of Rockfeller & Co., you will find on the Board of Directors, not only four Rockefellers, but also Lord Jacob Rothschild.
Candace K. Beinecke
Colin G. Campbell
Merit E. Janow
Reuben Jeffery III
Peter M. O'Neill
David Rockefeller, Jr.
Mark F. Rockefeller
Michael S. Rockefeller
Lord Jacob Rothschild*
Graham D.M. Thomas
David Rockefeller, Hon. Director
*Rockefeller Financial Services, Inc. only
Who Owns BlackRock II
The above description of share ownership is for other 'institutional owners', but only
According to the Public Intelligence website, BlackRock Inc, is owned by:
Merrill Lynch & Co. (= Bank of America): 31%
PNC Financial Services: 25%
Barclays PLC: 20%
Other Financial Institutions (see above): 21%
MikeTe 16 February 2014 at 21:27
very interesting report
and thank you MrK for your highlights !
Hi MikeTe,
" very interesting report
and thank you MrK for your highlights ! "
I wish I was fluent in French, because there is an entire French branch of the Rothschild banking dynasty, and I am sure that upon closer inspection, they are all over French speaking Africa, just as they were in the 19th century.
Just a few corrections to my own earlier post:
Prins Bernhard zu Lippe Biesterveld, spouse to the Dutch Queen Beatrix
Prince Bernhard zur Lippe Biesterveld was former Queen Beatrix' father. Her son Willem Alexander is now King of the Netherlands. Bernhard co-founded the Bilderberg Group with David Rockfeller in 1954, at Hotel de Bilderberg in Oosterbeek. Where both he and Lord Peter Carrington were present/fought (on the same side, sort of) during WWII and the Battle of Arnhem, immortalized in the movie A Bridge Too Far. Bernhard ended up as the head of the Dutch Prinses Irene Brigade during Operation Market Garden, and there have always been suspicions that he may have given away the Market Garden operation (with the sudden appearance of 2 SS armored units at Arnhem Bridge - he was also in contact with a resistance operative who had been flipped by the Abwehr, called Adriaan 'King Kong' Lindemans).
Former Queen Beatrix married Klaus von Amsberg, an German aristocrat with property in Tanzania, also a member of the NSDAP, and who had also served in the Wehrmacht during WWII, possibly the SS.
There are of course rumours about Bernhard, because before WWII, he was a member of the NSDAP, and briefly a member of the Reiter SS, which was later absorbed into the Waffen SS. He became a corporate spy for IG Farben's NW7 (IG Farben was the giant nazi conglomerate that owned Bayer, BASF and Agfa, and later ended up setting up Auschwitz III or Buna-Werke, through it's 100% owned subsidiary IG Auschwitz). (See here.)
A guide to mining taxation in Zambia
Democracy in Africa
The Proposed Creation of INDECO
IMF on Zambia's Poor Financial Management
The Auditor General's Report for 2012
Stadia Mania Zambia
Chikwanda is Wrong
IMF on Zambia's Fiscal Deficit
Zambia: Socialism Belongs to the Archives!
Debtmania Zambia
MF - Zambia Watch (January 2014)


text:
#include "xfs.h"
#include "xfs_fs.h"
#include "xfs_shared.h"
#include "xfs_format.h"
#include "xfs_log_format.h"
#include "xfs_trans_resv.h"
#include "xfs_bit.h"
#include "xfs_sb.h"
#include "xfs_mount.h"
#include "xfs_inode.h"
#include "xfs_ialloc.h"
#include "xfs_alloc.h"
#include "xfs_error.h"
#include "xfs_trace.h"
#include "xfs_cksum.h"
#include "xfs_trans.h"
#include "xfs_buf_item.h"
#include "xfs_bmap_btree.h"
#include "xfs_alloc_btree.h"
#include "xfs_ialloc_btree.h"
#include "xfs_log.h"

/*
 * Physical superblock buffer manipulations. Shared with libxfs in userspace.
 */

/*
 * Reference counting access wrappers to the perag structures.
 * Because we never free per-ag structures, the only thing we
 * have to protect against changes is the tree structure itself.
 */
struct xfs_perag *
xfs_perag_get(
	struct xfs_mount	*mp,
	xfs_agnumber_t		agno)
{
	struct xfs_perag	*pag;
	int			ref = 0;

	rcu_read_lock();
	pag = radix_tree_lookup(&mp->m_perag_tree, agno);
	if (pag) {
		ASSERT(atomic_read(&pag->pag_ref) >= 0);
		ref = atomic_inc_return(&pag->pag_ref);
	}
	rcu_read_unlock();
	trace_xfs_perag_get(mp, agno, ref, _RET_IP_);
	return pag;
}

/*
 * search from @first to find the next perag with the given tag set.
 */
struct xfs_perag *
xfs_perag_get_tag(
	struct xfs_mount	*mp,
	xfs_agnumber_t		first,
	int			tag)
{
	struct xfs_perag	*pag;
	int			found;
	int			ref;

	rcu_read_lock();
	found = radix_tree_gang_lookup_tag(&mp->m_perag_tree,
					(void **)&pag, first, 1, tag);
	if (found <= 0) {
		rcu_read_unlock();
		return NULL;
	}
	ref = atomic_inc_return(&pag->pag_ref);
	rcu_read_unlock();
	trace_xfs_perag_get_tag(mp, pag->pag_agno, ref, _RET_IP_);
	return pag;
}

void
xfs_perag_put(
	struct xfs_perag	*pag)
{
	int	ref;

	ASSERT(atomic_read(&pag->pag_ref) > 0);
	ref = atomic_dec_return(&pag->pag_ref);
	trace_xfs_perag_put(pag->pag_mount, pag->pag_agno, ref, _RET_IP_);
}

/*
 * Check the validity of the SB found.
 */
STATIC int
xfs_mount_validate_sb(
	xfs_mount_t	*mp,
	xfs_sb_t	*sbp,
	bool		check_inprogress,
	bool		check_version)
{
	if (sbp->sb_magicnum != XFS_SB_MAGIC) {
		xfs_warn(mp, "bad magic number");
		return -EWRONGFS;
	}

	if (!xfs_sb_good_version(sbp)) {
		xfs_warn(mp, "bad version");
		return -EWRONGFS;
	}

	/*
	 * Version 5 superblock feature mask validation. Reject combinations the
	 * kernel cannot support up front before checking anything else. For
	 * write validation, we don't need to check feature masks.
	 */
	if (check_version && XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_5) {
		if (xfs_sb_has_compat_feature(sbp,
					XFS_SB_FEAT_COMPAT_UNKNOWN)) {
			xfs_warn(mp,
"Superblock has unknown compatible features (0x%x) enabled.",
				(sbp->sb_features_compat &
						XFS_SB_FEAT_COMPAT_UNKNOWN));
			xfs_warn(mp,
"Using a more recent kernel is recommended.");
		}

		if (xfs_sb_has_ro_compat_feature(sbp,
					XFS_SB_FEAT_RO_COMPAT_UNKNOWN)) {
			xfs_alert(mp,
"Superblock has unknown read-only compatible features (0x%x) enabled.",
				(sbp->sb_features_ro_compat &
						XFS_SB_FEAT_RO_COMPAT_UNKNOWN));
			if (!(mp->m_flags & XFS_MOUNT_RDONLY)) {
				xfs_warn(mp,
"Attempted to mount read-only compatible filesystem read-write.");
				xfs_warn(mp,
"Filesystem can only be safely mounted read only.");

				return -EINVAL;
			}
		}
		if (xfs_sb_has_incompat_feature(sbp,
					XFS_SB_FEAT_INCOMPAT_UNKNOWN)) {
			xfs_warn(mp,
"Superblock has unknown incompatible features (0x%x) enabled.",
				(sbp->sb_features_incompat &
						XFS_SB_FEAT_INCOMPAT_UNKNOWN));
			xfs_warn(mp,
"Filesystem can not be safely mounted by this kernel.");
			return -EINVAL;
		}
	} else if (xfs_sb_version_hascrc(sbp)) {
		/*
		 * We can't read verify the sb LSN because the read verifier is
		 * called before the log is allocated and processed. We know the
		 * log is set up before write verifier (!check_version) calls,
		 * so just check it here.
		 */
		if (!xfs_log_check_lsn(mp, sbp->sb_lsn))
			return -EFSCORRUPTED;
	}

	if (xfs_sb_version_has_pquotino(sbp)) {
		if (sbp->sb_qflags & (XFS_OQUOTA_ENFD | XFS_OQUOTA_CHKD)) {
			xfs_notice(mp,
			   "Version 5 of Super block has XFS_OQUOTA bits.");
			return -EFSCORRUPTED;
		}
	} else if (sbp->sb_qflags & (XFS_PQUOTA_ENFD | XFS_GQUOTA_ENFD |
				XFS_PQUOTA_CHKD | XFS_GQUOTA_CHKD)) {
			xfs_notice(mp,
"Superblock earlier than Version 5 has XFS_[PQ]UOTA_{ENFD|CHKD} bits.");
			return -EFSCORRUPTED;
	}

	/*
	 * Full inode chunks must be aligned to inode chunk size when
	 * sparse inodes are enabled to support the sparse chunk
	 * allocation algorithm and prevent overlapping inode records.
	 */
	if (xfs_sb_version_hassparseinodes(sbp)) {
		uint32_t	align;

		align = XFS_INODES_PER_CHUNK * sbp->sb_inodesize
				>> sbp->sb_blocklog;
		if (sbp->sb_inoalignmt != align) {
			xfs_warn(mp,
"Inode block alignment (%u) must match chunk size (%u) for sparse inodes.",
				 sbp->sb_inoalignmt, align);
			return -EINVAL;
		}
	}

	if (unlikely(
	    sbp->sb_logstart == 0 && mp->m_logdev_targp == mp->m_ddev_targp)) {
		xfs_warn(mp,
		"filesystem is marked as having an external log; "
		"specify logdev on the mount command line.");
		return -EINVAL;
	}

	if (unlikely(
	    sbp->sb_logstart != 0 && mp->m_logdev_targp != mp->m_ddev_targp)) {
		xfs_warn(mp,
		"filesystem is marked as having an internal log; "
		"do not specify logdev on the mount command line.");
		return -EINVAL;
	}

	/*
	 * More sanity checking.  Most of these were stolen directly from
	 * xfs_repair.
	 */
	if (unlikely(
	    sbp->sb_agcount <= 0					||
	    sbp->sb_sectsize < XFS_MIN_SECTORSIZE			||
	    sbp->sb_sectsize > XFS_MAX_SECTORSIZE			||
	    sbp->sb_sectlog < XFS_MIN_SECTORSIZE_LOG			||
	    sbp->sb_sectlog > XFS_MAX_SECTORSIZE_LOG			||
	    sbp->sb_sectsize != (1 << sbp->sb_sectlog)			||
	    sbp->sb_blocksize < XFS_MIN_BLOCKSIZE			||
	    sbp->sb_blocksize > XFS_MAX_BLOCKSIZE			||
	    sbp->sb_blocklog < XFS_MIN_BLOCKSIZE_LOG			||
	    sbp->sb_blocklog > XFS_MAX_BLOCKSIZE_LOG			||
	    sbp->sb_blocksize != (1 << sbp->sb_blocklog)		||
	    sbp->sb_dirblklog > XFS_MAX_BLOCKSIZE_LOG			||
	    sbp->sb_inodesize < XFS_DINODE_MIN_SIZE			||
	    sbp->sb_inodesize > XFS_DINODE_MAX_SIZE			||
	    sbp->sb_inodelog < XFS_DINODE_MIN_LOG			||
	    sbp->sb_inodelog > XFS_DINODE_MAX_LOG			||
	    sbp->sb_inodesize != (1 << sbp->sb_inodelog)		||
	    sbp->sb_logsunit > XLOG_MAX_RECORD_BSIZE			||
	    sbp->sb_inopblock != howmany(sbp->sb_blocksize,sbp->sb_inodesize) ||
	    (sbp->sb_blocklog - sbp->sb_inodelog != sbp->sb_inopblog)	||
	    (sbp->sb_rextsize * sbp->sb_blocksize > XFS_MAX_RTEXTSIZE)	||
	    (sbp->sb_rextsize * sbp->sb_blocksize < XFS_MIN_RTEXTSIZE)	||
	    (sbp->sb_imax_pct > 100 /* zero sb_imax_pct is valid */)	||
	    sbp->sb_dblocks == 0					||
	    sbp->sb_dblocks > XFS_MAX_DBLOCKS(sbp)			||
	    sbp->sb_dblocks < XFS_MIN_DBLOCKS(sbp)			||
	    sbp->sb_shared_vn != 0)) {
		xfs_notice(mp, "SB sanity check failed");
		return -EFSCORRUPTED;
	}

	/*
	 * Until this is fixed only page-sized or smaller data blocks work.
	 */
	if (unlikely(sbp->sb_blocksize > PAGE_SIZE)) {
		xfs_warn(mp,
		"File system with blocksize %d bytes. "
		"Only pagesize (%ld) or less will currently work.",
				sbp->sb_blocksize, PAGE_SIZE);
		return -ENOSYS;
	}

	/*
	 * Currently only very few inode sizes are supported.
	 */
	switch (sbp->sb_inodesize) {
	case 256:
	case 512:
	case 1024:
	case 2048:
		break;
	default:
		xfs_warn(mp, "inode size of %d bytes not supported",
				sbp->sb_inodesize);
		return -ENOSYS;
	}

	if (xfs_sb_validate_fsb_count(sbp, sbp->sb_dblocks) ||
	    xfs_sb_validate_fsb_count(sbp, sbp->sb_rblocks)) {
		xfs_warn(mp,
		"file system too large to be mounted on this system.");
		return -EFBIG;
	}

	if (check_inprogress && sbp->sb_inprogress) {
		xfs_warn(mp, "Offline file system operation in progress!");
		return -EFSCORRUPTED;
	}
	return 0;
}

void
xfs_sb_quota_from_disk(struct xfs_sb *sbp)
{
	/*
	 * older mkfs doesn't initialize quota inodes to NULLFSINO. This
	 * leads to in-core values having two different values for a quota
	 * inode to be invalid: 0 and NULLFSINO. Change it to a single value
	 * NULLFSINO.
	 *
	 * Note that this change affect only the in-core values. These
	 * values are not written back to disk unless any quota information
	 * is written to the disk. Even in that case, sb_pquotino field is
	 * not written to disk unless the superblock supports pquotino.
	 */
	if (sbp->sb_uquotino == 0)
		sbp->sb_uquotino = NULLFSINO;
	if (sbp->sb_gquotino == 0)
		sbp->sb_gquotino = NULLFSINO;
	if (sbp->sb_pquotino == 0)
		sbp->sb_pquotino = NULLFSINO;

	/*
	 * We need to do these manipilations only if we are working
	 * with an older version of on-disk superblock.
	 */
	if (xfs_sb_version_has_pquotino(sbp))
		return;

	if (sbp->sb_qflags & XFS_OQUOTA_ENFD)
		sbp->sb_qflags |= (sbp->sb_qflags & XFS_PQUOTA_ACCT) ?
					XFS_PQUOTA_ENFD : XFS_GQUOTA_ENFD;
	if (sbp->sb_qflags & XFS_OQUOTA_CHKD)
		sbp->sb_qflags |= (sbp->sb_qflags & XFS_PQUOTA_ACCT) ?
					XFS_PQUOTA_CHKD : XFS_GQUOTA_CHKD;
	sbp->sb_qflags &= ~(XFS_OQUOTA_ENFD | XFS_OQUOTA_CHKD);

	if (sbp->sb_qflags & XFS_PQUOTA_ACCT)  {
		/*
		 * In older version of superblock, on-disk superblock only
		 * has sb_gquotino, and in-core superblock has both sb_gquotino
		 * and sb_pquotino. But, only one of them is supported at any
		 * point of time. So, if PQUOTA is set in disk superblock,
		 * copy over sb_gquotino to sb_pquotino.
		 */
		sbp->sb_pquotino = sbp->sb_gquotino;
		sbp->sb_gquotino = NULLFSINO;
	}
}

static void
__xfs_sb_from_disk(
	struct xfs_sb	*to,
	xfs_dsb_t	*from,
	bool		convert_xquota)
{
	to->sb_magicnum = be32_to_cpu(from->sb_magicnum);
	to->sb_blocksize = be32_to_cpu(from->sb_blocksize);
	to->sb_dblocks = be64_to_cpu(from->sb_dblocks);
	to->sb_rblocks = be64_to_cpu(from->sb_rblocks);
	to->sb_rextents = be64_to_cpu(from->sb_rextents);
	memcpy(&to->sb_uuid, &from->sb_uuid, sizeof(to->sb_uuid));
	to->sb_logstart = be64_to_cpu(from->sb_logstart);
	to->sb_rootino = be64_to_cpu(from->sb_rootino);
	to->sb_rbmino = be64_to_cpu(from->sb_rbmino);
	to->sb_rsumino = be64_to_cpu(from->sb_rsumino);
	to->sb_rextsize = be32_to_cpu(from->sb_rextsize);
	to->sb_agblocks = be32_to_cpu(from->sb_agblocks);
	to->sb_agcount = be32_to_cpu(from->sb_agcount);
	to->sb_rbmblocks = be32_to_cpu(from->sb_rbmblocks);
	to->sb_logblocks = be32_to_cpu(from->sb_logblocks);
	to->sb_versionnum = be16_to_cpu(from->sb_versionnum);
	to->sb_sectsize = be16_to_cpu(from->sb_sectsize);
	to->sb_inodesize = be16_to_cpu(from->sb_inodesize);
	to->sb_inopblock = be16_to_cpu(from->sb_inopblock);
	memcpy(&to->sb_fname, &from->sb_fname, sizeof(to->sb_fname));
	to->sb_blocklog = from->sb_blocklog;
	to->sb_sectlog = from->sb_sectlog;
	to->sb_inodelog = from->sb_inodelog;
	to->sb_inopblog = from->sb_inopblog;
	to->sb_agblklog = from->sb_agblklog;
	to->sb_rextslog = from->sb_rextslog;
	to->sb_inprogress = from->sb_inprogress;
	to->sb_imax_pct = from->sb_imax_pct;
	to->sb_icount = be64_to_cpu(from->sb_icount);
	to->sb_ifree = be64_to_cpu(from->sb_ifree);
	to->sb_fdblocks = be64_to_cpu(from->sb_fdblocks);
	to->sb_frextents = be64_to_cpu(from->sb_frextents);
	to->sb_uquotino = be64_to_cpu(from->sb_uquotino);
	to->sb_gquotino = be64_to_cpu(from->sb_gquotino);
	to->sb_qflags = be16_to_cpu(from->sb_qflags);
	to->sb_flags = from->sb_flags;
	to->sb_shared_vn = from->sb_shared_vn;
	to->sb_inoalignmt = be32_to_cpu(from->sb_inoalignmt);
	to->sb_unit = be32_to_cpu(from->sb_unit);
	to->sb_width = be32_to_cpu(from->sb_width);
	to->sb_dirblklog = from->sb_dirblklog;
	to->sb_logsectlog = from->sb_logsectlog;
	to->sb_logsectsize = be16_to_cpu(from->sb_logsectsize);
	to->sb_logsunit = be32_to_cpu(from->sb_logsunit);
	to->sb_features2 = be32_to_cpu(from->sb_features2);
	to->sb_bad_features2 = be32_to_cpu(from->sb_bad_features2);
	to->sb_features_compat = be32_to_cpu(from->sb_features_compat);
	to->sb_features_ro_compat = be32_to_cpu(from->sb_features_ro_compat);
	to->sb_features_incompat = be32_to_cpu(from->sb_features_incompat);
	to->sb_features_log_incompat =
				be32_to_cpu(from->sb_features_log_incompat);
	/* crc is only used on disk, not in memory; just init to 0 here. */
	to->sb_crc = 0;
	to->sb_spino_align = be32_to_cpu(from->sb_spino_align);
	to->sb_pquotino = be64_to_cpu(from->sb_pquotino);
	to->sb_lsn = be64_to_cpu(from->sb_lsn);
	/*
	 * sb_meta_uuid is only on disk if it differs from sb_uuid and the
	 * feature flag is set; if not set we keep it only in memory.
	 */
	if (xfs_sb_version_hasmetauuid(to))
		uuid_copy(&to->sb_meta_uuid, &from->sb_meta_uuid);
	else
		uuid_copy(&to->sb_meta_uuid, &from->sb_uuid);
	/* Convert on-disk flags to in-memory flags? */
	if (convert_xquota)
		xfs_sb_quota_from_disk(to);
}

void
xfs_sb_from_disk(
	struct xfs_sb	*to,
	xfs_dsb_t	*from)
{
	__xfs_sb_from_disk(to, from, true);
}

static void
xfs_sb_quota_to_disk(
	struct xfs_dsb	*to,
	struct xfs_sb	*from)
{
	__uint16_t	qflags = from->sb_qflags;

	to->sb_uquotino = cpu_to_be64(from->sb_uquotino);
	if (xfs_sb_version_has_pquotino(from)) {
		to->sb_qflags = cpu_to_be16(from->sb_qflags);
		to->sb_gquotino = cpu_to_be64(from->sb_gquotino);
		to->sb_pquotino = cpu_to_be64(from->sb_pquotino);
		return;
	}

	/*
	 * The in-core version of sb_qflags do not have XFS_OQUOTA_*
	 * flags, whereas the on-disk version does.  So, convert incore
	 * XFS_{PG}QUOTA_* flags to on-disk XFS_OQUOTA_* flags.
	 */
	qflags &= ~(XFS_PQUOTA_ENFD | XFS_PQUOTA_CHKD |
			XFS_GQUOTA_ENFD | XFS_GQUOTA_CHKD);

	if (from->sb_qflags &
			(XFS_PQUOTA_ENFD | XFS_GQUOTA_ENFD))
		qflags |= XFS_OQUOTA_ENFD;
	if (from->sb_qflags &
			(XFS_PQUOTA_CHKD | XFS_GQUOTA_CHKD))
		qflags |= XFS_OQUOTA_CHKD;
	to->sb_qflags = cpu_to_be16(qflags);

	/*
	 * GQUOTINO and PQUOTINO cannot be used together in versions
	 * of superblock that do not have pquotino. from->sb_flags
	 * tells us which quota is active and should be copied to
	 * disk. If neither are active, we should NULL the inode.
	 *
	 * In all cases, the separate pquotino must remain 0 because it
	 * it beyond the "end" of the valid non-pquotino superblock.
	 */
	if (from->sb_qflags & XFS_GQUOTA_ACCT)
		to->sb_gquotino = cpu_to_be64(from->sb_gquotino);
	else if (from->sb_qflags & XFS_PQUOTA_ACCT)
		to->sb_gquotino = cpu_to_be64(from->sb_pquotino);
	else {
		/*
		 * We can't rely on just the fields being logged to tell us
		 * that it is safe to write NULLFSINO - we should only do that
		 * if quotas are not actually enabled. Hence only write
		 * NULLFSINO if both in-core quota inodes are NULL.
		 */
		if (from->sb_gquotino == NULLFSINO &&
		    from->sb_pquotino == NULLFSINO)
			to->sb_gquotino = cpu_to_be64(NULLFSINO);
	}

	to->sb_pquotino = 0;
}

void
xfs_sb_to_disk(
	struct xfs_dsb	*to,
	struct xfs_sb	*from)
{
	xfs_sb_quota_to_disk(to, from);

	to->sb_magicnum = cpu_to_be32(from->sb_magicnum);
	to->sb_blocksize = cpu_to_be32(from->sb_blocksize);
	to->sb_dblocks = cpu_to_be64(from->sb_dblocks);
	to->sb_rblocks = cpu_to_be64(from->sb_rblocks);
	to->sb_rextents = cpu_to_be64(from->sb_rextents);
	memcpy(&to->sb_uuid, &from->sb_uuid, sizeof(to->sb_uuid));
	to->sb_logstart = cpu_to_be64(from->sb_logstart);
	to->sb_rootino = cpu_to_be64(from->sb_rootino);
	to->sb_rbmino = cpu_to_be64(from->sb_rbmino);
	to->sb_rsumino = cpu_to_be64(from->sb_rsumino);
	to->sb_rextsize = cpu_to_be32(from->sb_rextsize);
	to->sb_agblocks = cpu_to_be32(from->sb_agblocks);
	to->sb_agcount = cpu_to_be32(from->sb_agcount);
	to->sb_rbmblocks = cpu_to_be32(from->sb_rbmblocks);
	to->sb_logblocks = cpu_to_be32(from->sb_logblocks);
	to->sb_versionnum = cpu_to_be16(from->sb_versionnum);
	to->sb_sectsize = cpu_to_be16(from->sb_sectsize);
	to->sb_inodesize = cpu_to_be16(from->sb_inodesize);
	to->sb_inopblock = cpu_to_be16(from->sb_inopblock);
	memcpy(&to->sb_fname, &from->sb_fname, sizeof(to->sb_fname));
	to->sb_blocklog = from->sb_blocklog;
	to->sb_sectlog = from->sb_sectlog;
	to->sb_inodelog = from->sb_inodelog;
	to->sb_inopblog = from->sb_inopblog;
	to->sb_agblklog = from->sb_agblklog;
	to->sb_rextslog = from->sb_rextslog;
	to->sb_inprogress = from->sb_inprogress;
	to->sb_imax_pct = from->sb_imax_pct;
	to->sb_icount = cpu_to_be64(from->sb_icount);
	to->sb_ifree = cpu_to_be64(from->sb_ifree);
	to->sb_fdblocks = cpu_to_be64(from->sb_fdblocks);
	to->sb_frextents = cpu_to_be64(from->sb_frextents);

	to->sb_flags = from->sb_flags;
	to->sb_shared_vn = from->sb_shared_vn;
	to->sb_inoalignmt = cpu_to_be32(from->sb_inoalignmt);
	to->sb_unit = cpu_to_be32(from->sb_unit);
	to->sb_width = cpu_to_be32(from->sb_width);
	to->sb_dirblklog = from->sb_dirblklog;
	to->sb_logsectlog = from->sb_logsectlog;
	to->sb_logsectsize = cpu_to_be16(from->sb_logsectsize);
	to->sb_logsunit = cpu_to_be32(from->sb_logsunit);

	/*
	 * We need to ensure that bad_features2 always matches features2.
	 * Hence we enforce that here rather than having to remember to do it
	 * everywhere else that updates features2.
	 */
	from->sb_bad_features2 = from->sb_features2;
	to->sb_features2 = cpu_to_be32(from->sb_features2);
	to->sb_bad_features2 = cpu_to_be32(from->sb_bad_features2);

	if (xfs_sb_version_hascrc(from)) {
		to->sb_features_compat = cpu_to_be32(from->sb_features_compat);
		to->sb_features_ro_compat =
				cpu_to_be32(from->sb_features_ro_compat);
		to->sb_features_incompat =
				cpu_to_be32(from->sb_features_incompat);
		to->sb_features_log_incompat =
				cpu_to_be32(from->sb_features_log_incompat);
		to->sb_spino_align = cpu_to_be32(from->sb_spino_align);
		to->sb_lsn = cpu_to_be64(from->sb_lsn);
		if (xfs_sb_version_hasmetauuid(from))
			uuid_copy(&to->sb_meta_uuid, &from->sb_meta_uuid);
	}
}

static int
xfs_sb_verify(
	struct xfs_buf	*bp,
	bool		check_version)
{
	struct xfs_mount *mp = bp->b_target->bt_mount;
	struct xfs_sb	sb;

	/*
	 * Use call variant which doesn't convert quota flags from disk
	 * format, because xfs_mount_validate_sb checks the on-disk flags.
	 */
	__xfs_sb_from_disk(&sb, XFS_BUF_TO_SBP(bp), false);

	/*
	 * Only check the in progress field for the primary superblock as
	 * mkfs.xfs doesn't clear it from secondary superblocks.
	 */
	return xfs_mount_validate_sb(mp, &sb, bp->b_bn == XFS_SB_DADDR,
				     check_version);
}

/*
 * If the superblock has the CRC feature bit set or the CRC field is non-null,
 * check that the CRC is valid.  We check the CRC field is non-null because a
 * single bit error could clear the feature bit and unused parts of the
 * superblock are supposed to be zero. Hence a non-null crc field indicates that
 * we've potentially lost a feature bit and we should check it anyway.
 *
 * However, past bugs (i.e. in growfs) left non-zeroed regions beyond the
 * last field in V4 secondary superblocks.  So for secondary superblocks,
 * we are more forgiving, and ignore CRC failures if the primary doesn't
 * indicate that the fs version is V5.
 */
static void
xfs_sb_read_verify(
	struct xfs_buf	*bp)
{
	struct xfs_mount *mp = bp->b_target->bt_mount;
	struct xfs_dsb	*dsb = XFS_BUF_TO_SBP(bp);
	int		error;

	/*
	 * open code the version check to avoid needing to convert the entire
	 * superblock from disk order just to check the version number
	 */
	if (dsb->sb_magicnum == cpu_to_be32(XFS_SB_MAGIC) &&
	    (((be16_to_cpu(dsb->sb_versionnum) & XFS_SB_VERSION_NUMBITS) ==
						XFS_SB_VERSION_5) ||
	     dsb->sb_crc != 0)) {

		if (!xfs_buf_verify_cksum(bp, XFS_SB_CRC_OFF)) {
			/* Only fail bad secondaries on a known V5 filesystem */
			if (bp->b_bn == XFS_SB_DADDR ||
			    xfs_sb_version_hascrc(&mp->m_sb)) {
				error = -EFSBADCRC;
				goto out_error;
			}
		}
	}
	error = xfs_sb_verify(bp, true);

out_error:
	if (error) {
		xfs_buf_ioerror(bp, error);
		if (error == -EFSCORRUPTED || error == -EFSBADCRC)
			xfs_verifier_error(bp);
	}
}

/*
 * We may be probed for a filesystem match, so we may not want to emit
 * messages when the superblock buffer is not actually an XFS superblock.
 * If we find an XFS superblock, then run a normal, noisy mount because we are
 * really going to mount it and want to know about errors.
 */
static void
xfs_sb_quiet_read_verify(
	struct xfs_buf	*bp)
{
	struct xfs_dsb	*dsb = XFS_BUF_TO_SBP(bp);

	if (dsb->sb_magicnum == cpu_to_be32(XFS_SB_MAGIC)) {
		/* XFS filesystem, verify noisily! */
		xfs_sb_read_verify(bp);
		return;
	}
	/* quietly fail */
	xfs_buf_ioerror(bp, -EWRONGFS);
}

static void
xfs_sb_write_verify(
	struct xfs_buf		*bp)
{
	struct xfs_mount	*mp = bp->b_target->bt_mount;
	struct xfs_buf_log_item	*bip = bp->b_fspriv;
	int			error;

	error = xfs_sb_verify(bp, false);
	if (error) {
		xfs_buf_ioerror(bp, error);
		xfs_verifier_error(bp);
		return;
	}

	if (!xfs_sb_version_hascrc(&mp->m_sb))
		return;

	if (bip)
		XFS_BUF_TO_SBP(bp)->sb_lsn = cpu_to_be64(bip->bli_item.li_lsn);

	xfs_buf_update_cksum(bp, XFS_SB_CRC_OFF);
}

const struct xfs_buf_ops xfs_sb_buf_ops = {
	.verify_read = xfs_sb_read_verify,
	.verify_write = xfs_sb_write_verify,
};

const struct xfs_buf_ops xfs_sb_quiet_buf_ops = {
	.verify_read = xfs_sb_quiet_read_verify,
	.verify_write = xfs_sb_write_verify,
};

/*
 * xfs_mount_common
 *
 * Mount initialization code establishing various mount
 * fields from the superblock associated with the given
 * mount structure
 */
void
xfs_sb_mount_common(
	struct xfs_mount *mp,
	struct xfs_sb	*sbp)
{
	mp->m_agfrotor = mp->m_agirotor = 0;
	spin_lock_init(&mp->m_agirotor_lock);
	mp->m_maxagi = mp->m_sb.sb_agcount;
	mp->m_blkbit_log = sbp->sb_blocklog + XFS_NBBYLOG;
	mp->m_blkbb_log = sbp->sb_blocklog - BBSHIFT;
	mp->m_sectbb_log = sbp->sb_sectlog - BBSHIFT;
	mp->m_agno_log = xfs_highbit32(sbp->sb_agcount - 1) + 1;
	mp->m_agino_log = sbp->sb_inopblog + sbp->sb_agblklog;
	mp->m_blockmask = sbp->sb_blocksize - 1;
	mp->m_blockwsize = sbp->sb_blocksize >> XFS_WORDLOG;
	mp->m_blockwmask = mp->m_blockwsize - 1;

	mp->m_alloc_mxr[0] = xfs_allocbt_maxrecs(mp, sbp->sb_blocksize, 1);
	mp->m_alloc_mxr[1] = xfs_allocbt_maxrecs(mp, sbp->sb_blocksize, 0);
	mp->m_alloc_mnr[0] = mp->m_alloc_mxr[0] / 2;
	mp->m_alloc_mnr[1] = mp->m_alloc_mxr[1] / 2;

	mp->m_inobt_mxr[0] = xfs_inobt_maxrecs(mp, sbp->sb_blocksize, 1);
	mp->m_inobt_mxr[1] = xfs_inobt_maxrecs(mp, sbp->sb_blocksize, 0);
	mp->m_inobt_mnr[0] = mp->m_inobt_mxr[0] / 2;
	mp->m_inobt_mnr[1] = mp->m_inobt_mxr[1] / 2;

	mp->m_bmap_dmxr[0] = xfs_bmbt_maxrecs(mp, sbp->sb_blocksize, 1);
	mp->m_bmap_dmxr[1] = xfs_bmbt_maxrecs(mp, sbp->sb_blocksize, 0);
	mp->m_bmap_dmnr[0] = mp->m_bmap_dmxr[0] / 2;
	mp->m_bmap_dmnr[1] = mp->m_bmap_dmxr[1] / 2;

	mp->m_bsize = XFS_FSB_TO_BB(mp, 1);
	mp->m_ialloc_inos = (int)MAX((__uint16_t)XFS_INODES_PER_CHUNK,
					sbp->sb_inopblock);
	mp->m_ialloc_blks = mp->m_ialloc_inos >> sbp->sb_inopblog;

	if (sbp->sb_spino_align)
		mp->m_ialloc_min_blks = sbp->sb_spino_align;
	else
		mp->m_ialloc_min_blks = mp->m_ialloc_blks;
}

/*
 * xfs_initialize_perag_data
 *
 * Read in each per-ag structure so we can count up the number of
 * allocated inodes, free inodes and used filesystem blocks as this
 * information is no longer persistent in the superblock. Once we have
 * this information, write it into the in-core superblock structure.
 */
int
xfs_initialize_perag_data(
	struct xfs_mount *mp,
	xfs_agnumber_t	agcount)
{
	xfs_agnumber_t	index;
	xfs_perag_t	*pag;
	xfs_sb_t	*sbp = &mp->m_sb;
	uint64_t	ifree = 0;
	uint64_t	ialloc = 0;
	uint64_t	bfree = 0;
	uint64_t	bfreelst = 0;
	uint64_t	btree = 0;
	int		error;

	for (index = 0; index < agcount; index++) {
		/*
		 * read the agf, then the agi. This gets us
		 * all the information we need and populates the
		 * per-ag structures for us.
		 */
		error = xfs_alloc_pagf_init(mp, NULL, index, 0);
		if (error)
			return error;

		error = xfs_ialloc_pagi_init(mp, NULL, index);
		if (error)
			return error;
		pag = xfs_perag_get(mp, index);
		ifree += pag->pagi_freecount;
		ialloc += pag->pagi_count;
		bfree += pag->pagf_freeblks;
		bfreelst += pag->pagf_flcount;
		btree += pag->pagf_btreeblks;
		xfs_perag_put(pag);
	}

	/* Overwrite incore superblock counters with just-read data */
	spin_lock(&mp->m_sb_lock);
	sbp->sb_ifree = ifree;
	sbp->sb_icount = ialloc;
	sbp->sb_fdblocks = bfree + bfreelst + btree;
	spin_unlock(&mp->m_sb_lock);

	xfs_reinit_percpu_counters(mp);

	return 0;
}

/*
 * xfs_log_sb() can be used to copy arbitrary changes to the in-core superblock
 * into the superblock buffer to be logged.  It does not provide the higher
 * level of locking that is needed to protect the in-core superblock from
 * concurrent access.
 */
void
xfs_log_sb(
	struct xfs_trans	*tp)
{
	struct xfs_mount	*mp = tp->t_mountp;
	struct xfs_buf		*bp = xfs_trans_getsb(tp, mp, 0);

	mp->m_sb.sb_icount = percpu_counter_sum(&mp->m_icount);
	mp->m_sb.sb_ifree = percpu_counter_sum(&mp->m_ifree);
	mp->m_sb.sb_fdblocks = percpu_counter_sum(&mp->m_fdblocks);

	xfs_sb_to_disk(XFS_BUF_TO_SBP(bp), &mp->m_sb);
	xfs_trans_buf_set_type(tp, bp, XFS_BLFT_SB_BUF);
	xfs_trans_log_buf(tp, bp, 0, sizeof(struct xfs_dsb));
}

/*
 * xfs_sync_sb
 *
 * Sync the superblock to disk.
 *
 * Note that the caller is responsible for checking the frozen state of the
 * filesystem. This procedure uses the non-blocking transaction allocator and
 * thus will allow modifications to a frozen fs. This is required because this
 * code can be called during the process of freezing where use of the high-level
 * allocator would deadlock.
 */
int
xfs_sync_sb(
	struct xfs_mount	*mp,
	bool			wait)
{
	struct xfs_trans	*tp;
	int			error;

	tp = _xfs_trans_alloc(mp, XFS_TRANS_SB_CHANGE, KM_SLEEP);
	error = xfs_trans_reserve(tp, &M_RES(mp)->tr_sb, 0, 0);
	if (error) {
		xfs_trans_cancel(tp);
		return error;
	}

	xfs_log_sb(tp);
	if (wait)
		xfs_trans_set_sync(tp);
	return xfs_trans_commit(tp);
}

redpajama_set_name: RedPajamaGithub


text:
Home News Research & Innovation News Ancient medical remedy: using Manuka honey in surgery
Ancient medical remedy: using Manuka honey in surgery
iStock-knape
As the antibiotics resistance crisis continues, researchers are looking for replacements that can help to prevent in infection.
One solution to antibiotic resistance could be an ancient remedy – Manuka honey. Honey has been used to treat infections since ancient times, and thousands of years before the discovery of bacteria.
Most honey is believed to have some bacteria killing properties because it contains chemicals that produce hydrogen peroxide.
However, in 1991 a New Zealand study showed that when you remove the hydrogen peroxide from a range of honeys, Manuka – made from nectar collected by bees that forage on the wild Manuka tree – was the only type that kept its ability to kill bacteria.
This is due to the presence of a unique ingredient, now identified as methylglyoxal, which has specific antimicrobial properties.
Now, a new study has highlighted the potential benefits of infusing medical implants with honey.
The study was led by an international team of scientists and engineers including Dr Piergiorgio Gentile at Newcastle University, and Dr Elena Mancuso, at Ulster University and was published in the journal Frontiers.
Using honey in surgery
New research has shown that layering minute amounts of Manuka honey between layers of surgical mesh acts as a natural antibiotic that could prevent infection following an operation.
Meshes are used to help promote soft tissue healing inside the body following surgery and are common in operations such as hernia repair. However, they carry with them an increased risk of infection as the bacteria are able to get a hold inside the body by forming a biofilm on the surface of the mesh.
Skin and soft tissue infections are the most common bacterial infections, accounting for around 10% of hospital admissions, and a significant proportion of these are secondary infections following surgery.
Currently, any infection is treated with antibiotics, but the emergence of antibiotic resistant strains – or 'superbugs' – means scientists are on the hunt for alternatives.
Sandwiching eight nano-layers of Manuka honey (with a negative charge) between eight layers of a polymer (with a positive charge), showed it is possible to create an electrostatic nanocoating on the mesh which, in the lab, inhibits bacteria for up to three weeks as the honey is slowly released.
Dr Piergiorgio Gentile, lead author and a Biomedical Engineer at Newcastle University, said: "Mesh is implanted inside the body to provide stability while the internal tissues heal but, unfortunately, it also provides the perfect surface for bacteria to grow on. Once the bacteria form a biofilm on the surface, it's very difficult to treat the infection.
"By sandwiching the honey in a multilayer coating on the mesh surface and slowly releasing it, the aim is to inhibit the growth of the bacteria and stop the infection before it even starts.
"These results are really very exciting. Honey has been used to treat infected wounds for thousands of years, but this is the first time it has been shown to be effective at fighting infection in cells from inside the body."
Dr Mancuso, a lecturer within the Nanotechnology and Integrated Bioengineering Centre (NIBEC) at Ulster University, adds: "Although numerous antibiotic-based coatings, constructed through layered approaches, and intended for the development of antibacterial implants, have been investigated so far, it has been found that the effect of antibiotics may decrease with time, since antibiotic resistant bacteria may potentially develop."
An antibacterial agent
Using medical-grade Manuka honey, the team used the Layer-by-Layer assembly technology to create alternating layers of negatively-charged honey and positively-charged conventional biocompatible polymer to modify the surface of electrospun membrane, each layer just 10-20 nanometers thick.
Tested in-vitro on different soft tissue cell lines to test their biocompatibility, the functionalised meshes were exposed to a range of common bacterial infections such as MRSA, Staphylococcus and E coli.
"Too little honey and it won't be enough to fight the infection but too much honey can kill the cells," explains Dr Gentile. "By creating this 16-layerd 'charged sandwich' we were able to make sure the honey was released in a controlled way over two to three weeks which should give the wound time to heal free of infection."
Dr Mancuso adds: "With our study we have demonstrated the promising combination of a naturally-derived antibacterial agent with a nanotechnology approach, which may be translated to the design and development of novel medical devices with advanced functionality."
Recommended Related Articles
'Tricked' bacteria opens door for development of antibiotic-free drugs
A new family of antibiotics found in dirt samples
Antibiotic resistance at higher levels worldwide
Antimicrobial resistance: older compounds to tackle a modern issue
Animal health for the benefit of all
Antibiotic treatment should stop to avoid resistance "tipping point"
Stephanie Price
Innovations in cancer care during COVID-19 and beyond
Supporting the health of people with multiple and complex needs
Artificial Intelligence to transform treatment of COVID-19 patients
NHS partnership to provide digital healthcare for over 300,000 people
Multimillion pound health and innovation institute opening in Manchester
Could soil used in ancient Irish folk medicine fight antimicrobial resistance?
Shubham malik 5th December 2019 at 3:23 pm
Syed Abul Hassan 6th December 2019 at 12:54 pm
Honey is a medicine, it's explained in the" Holy Quran".
kelly C. 20th May 2020 at 11:58 pm
it is very interesting how honey has properties that help us to strengthen the immune system as a natural defense of the body, by the way excellent article.

redpajama_set_name: RedPajamaCommonCrawl


What to expect from the year of the Monkey: for each of us, fate is preparing a surprise!
The coming year will be exceptionally successful for many of us! Fiery monkey - the animal is mobile, playful, full of energy. Those who are accustomed to work and be active in 2016 will receive a worthy result of their efforts!
The year of the monkey prepares for the rams a period of stability, bliss and peace. To be on a horse in the new year, the rams need to learn to be moderate in everything and to monitor their spending.
If the Aries feels comfortable in the workplace, then he works wonderfully. Follow the creation of a cozy atmosphere at work, it is very important for career growth and future success!
at Love sphere There will be pleasant surprises, it will beAn excellent period for everyone who has just started a family life. Do not forget that it is necessary to pay enough attention to your relatives: this is the guarantee of good progress in all directions.
For calves, the hour of the long-awaited reward comes! The work will please: this year the career will start to develop rapidly, bringing a good income to those who respect work.
To maintain good health in the year of the monkey, the calves need to remember about a balanced diet and do not forget about the rest. likely, In 2016 the Taurus Will go on a delightful journey, which he will remember for a long time!
When the twin is unlucky, he is inclined to fall intoGloomy, decadent condition. This year there may be events that will cause depression in the twins. But now these people are strong enough to survive any tests!
Work for twins - an integral part of life, and they can make money. The main thing is to be careful with business partners and not put too high hopes on them, it's dangerous.
Twins are surrounded by attention, gifts and tenderness! Especially those who have long ceased to believe in love.
If the cancer does not yet have a second half, it will surely find it in the new year! In Family crayfish It's time to arrange housing, dismantlings with loans and household trifles, which have long been haunted.
Avoid nervous breakdowns and stresses this year, can help crayfish pets and any animals with whom you can communicate closely. If you feel a decline of strength - caress the seal, and it will immediately become easier.
The key to the success of the lions in 2016 - control over themselves and a positive mood. Excessive emotionality and quick temper can seriously damage this sign, so lions should be kept low.
Thinking through each step, the lions are approaching the coveted goal. The monkey will help the lion deal with any difficulties and give a special person who will help out more than once in the most difficult situations.
Love can overtake a lion at any moment, you just need to learn to distinguish genuine feelings from passion and not be afraid of responsibility. Attractiveness of lions This year everyone will be surprised and will lure a lot of fans!
New people, interesting acquaintances and travelFall on the maid. But if you are set for serious success, it is worthwhile to understand what is really important to you. On everything there is not enough strength or time - it's time to prioritize.
This year, the virgins are waiting for a transformation in their personal lives. A lone virgin Will get a chance to meet the man of his dreams, and a virgin who has a couple will transfer the relationship to a new level.
If a maid has problems with being overweight, in thisYear is a favorable period to change their habits. Physical exercises not only emphasize the beauty of the virgins, but also give self-confidence, and it's worth it.
Important for scales Now is work. If you try from the heart, all the work will bring profit and emotional satisfaction.
Personal life should not be put on the first place: Only closer to the end of the year the scales will be able to understand what they want from the relationship. If you have any unpleasant connections and dating from the past, it's time to break them!
It's time to start to monitor yourself, check your health and treat the body's signals carefully.
Scorpions have a time of change! Hitting the cycle of events, the scorpion is not lost and will be the winner in any situation.
Active scorpion will be glad to know that hisPersonal life from this valuable quality only wins. In the year of the monkey the scorpion will be tuned to peaceful resolution of conflicts and compromises, which will please its second half.
Scorpions it is important to strengthen immunity if they constantly support it with natural means, Health scorpions In 2016 will be at the highest level!
Labor exploits archers will not go unnoticed. In the new year he will receive a favorable business proposal and will be very glad that he is ready to be encouraged.
Lucky archers and in financial affairs, profits will be much more waste. If there is free time for entertainment trips, the archers should not miss such an excellent opportunity!
The year of the monkey promises to be very hot for the goat in the field of love. Happy moments will be much more than disappointments!
Hobby is something that should be given special attention inYear monkey. It can bring tangible profits to the Capricorn. Also ibex should be extremely careful about their health, especially if there are problems with the liver or stomach.
The higher the goal, the easier it will be for water-lovers to reach them! Water-dreamers in the year of the monkey will become the favorites of fortune and will be able to fully realize their potential.
Aquarians need to learn how to listen to their intuition: all the answers are already in you. Doubtful moments and suspicious events are obvious signs that you made the wrong decision.
Financial affairs of Aquarius Go up the hill! A wonderful period for the start of new projects and investment of funds.
Fish in the new year will feel the support and influence of the stars at every turn! It's time to say goodbye to all troubles and become independent people, it is important for fish to be able to rely only on themselves.
Light feelings fill Life of fish in 2016. Emotional and subtly feeling the fish will find peace and satisfaction, enjoying their love story.
The year of the monkey will draw new friends to the fish and make you look at many things from a different angle. Fish are recommended to go in for sports in order to keep their health strong!
The ideal time for the drastic changes in life is the upcoming Monkey year!! Do not be afraid when something goes wrong. Be open to any surprises, and you will receive generous gifts from life!
Share this astrological forecast with your friends, surely they will be interested!


text:
Watch Now >
Some Macroeconomic Puzzles: Conjectural Refutations - An Introduction By Professor Jagjit Chadha
Professor Jagjit Chadha
For his second year of lectures at Gresham College, Professor Chadha will unpack some of the most fascinating puzzles in macroeconomics. These puzzles come from the gap between what theory says should happen, and what actually occurs in in the real world. This short interview covers Professor Chadha's aims and methods.
Mercers' School Memorial Professor of Business
Jagjit Chadha was the Mercers' School Memorial Professor of Commerce at Gresham College from 2014-2018.
Support Gresham
Gresham College has offered an outstanding education to the public free of charge for over 400 years. Today, Gresham plays an important role in fostering a love of learning and a greater understanding of ourselves and the world around us. Your donation will help to widen our reach and to broaden our audience, allowing more people to benefit from a high-quality education from some of the brightest minds.
Long Term Performance Management in Finance - Closing Remarks
Alderman Professor Michael Mainelli
The South Sea Bubble of 1720
Dr Helen Paul
Docklands: The extension of London's financial centre
Amelia Fawcett CBE
Products: Bonds and More


Best Squarespace Cover Pages best squarespace cover pages cover page layouts squarespace help download. best squarespace cover pages design the easiest website ever with squarespace cover pages ideas. best squarespace cover pages introducing cover pages and commerce the official squarespace blog templates. Best Squarespace Cover Pages best squarespace cover pages cover page layouts squarespace help. best squarespace cover pages using cover pages squarespace help. best squarespace cover pages cover page layouts squarespace help ideas. Best Squarespace Cover Pages best squarespace cover pages why more photographers are choosing squarespace cover pages free.
Best Squarespace Cover Pages best squarespace cover pages design the easiest website ever with squarespace cover pages ideas. best squarespace cover pages introducing cover pages and commerce the official squarespace blog templates. best squarespace cover pages cover page layouts squarespace help. best squarespace cover pages using cover pages squarespace help. best squarespace cover pages cover page layouts squarespace help ideas.


Outcubator is a co-working space during the day and in the rest of the time it is transformed into a living organism for the dissemination of art, culture and sustainable projects. It is a meeting space for the contemplation of being now. Outcubator is a project of the Futur Urbá Association that works on the holistic improvement of the urban environment, from urbanism to culture and health. We are a community of people who share the taste for good design and the passion to transform our ideas into Creations. Outcubator is the space where we make it possible. We will wait for you.


Mangaluru, Mar 29, 2015 : Nikita Carol Ferrao, pursuing a masters in English language and literature at St Aloysius College, on March 28, Saturday released her third novel, 'Falling for My Crazy Stalker', at Press Club here .
After release of the book, local Media Founder Walter Nandalike said that usually students read more and rarely indulge in writing. Yet, Nikita has proved that along with reading, it is possible to share our thoughts, ideas and imaginations by writing.
Nikita Carol Ferrao said that the novel is mainly for teenagers and it's a mix of adventure, fiction and romance. It's an adventure of a seventeen-year-old girl 'Eve'. "Publishing of the book was a problem. Self-publishing proved good. The book has been published through Createspace Publishers and is available in Amazon.com," she said. Department of English Professors were also present. E-mail- nikferrao@yahoo.com.


text:
Home » A+E » Movies » Downey Jr. and Galifianakis good on paper but not in film
Downey Jr. and Galifianakis good on paper but not in film
By Alex Antonetz: antonetz.3@osu.edu	October 30, 2010	0
The combination of snarky Robert Downey Jr. and funny guy Zach Galifianakis sounded too good to be true.
In "Due Date," the follow-up from "The Hangover" and "Old School" director Todd Phillips, it is too good to be true.
"Due Date," Phillips' intermediary effort between "Hangover" films, feels like a film with a serious identity crisis — one that feels like an uncomfortable hybrid between "Tommy Boy" and "Rush Hour."
The film picks up with short-tempered Peter Highman (Downey, Jr.) looking to catch a flight out of Atlanta to return to his wife in Los Angeles, who is soon due to deliver their first child. After an incident on the plane puts Highman on a no-fly list, he and Ethan Tremblay (Galifianakis), who's heading to Hollywood to pursue an acting career, must partner up to get back to California before Highman's child is delivered.
The hijinks that ensue are cheap and childish, not unlike Phillips' "Hangover." Rampant marijuana use and an awkward masturbating scene, which might be funny in other contexts, fail to come across as anything more than humor aimed at the least-common denominator.
Don't get me wrong, that kind of humor can be OK. In the case of "Due Date," however, the film can never pick what it wants to be. Instead it tries to straddle a line between comedy and seriousness.
Even the usually witty and testy Downey never gets a chance to play to his strengths and is instead pushed into the background behind Galifianakis. Not unlike "The Hangover," Galifianakis steals the show, though unfortunately, he's still yet to match the quality of his "Between Two Ferns" Web show on film.
In the end, "Due Date" suffers from the fact that it never really finds its footing and uncomfortably walks the line between immature comedy and corny buddy flick.
That's not to say the film doesn't have its funny parts, but the flick never finds much consistency. Instead it segues far too often from funny to sentimental.
"Due Date" is due in theaters Friday.
Alex Antonetz
Previous: Columbus residents trek to D.C. for "Rally to Restore Sanity and/or Fear"
Next: November 2, 2010


text:
State leaders to discuss proposed bill to eliminate death penalty
BATON ROUGE- At the capitol, state leaders are debating getting rid of the death penalty.
Last week a House bill to abolish the death penalty stalled, but Wednesday the Senate's version faces final passage.
Senator JP Morrell introduced his bill last month which would take away the possibility of a death sentence effective August 1st of this year. Currently, the death penalty is available for those convicted of first-degree murder, first-degree rape of victims under the age of 13, and it is a mandatory punishment for treason.
The proposed bill has made its way through the Senate Judiciary Committee and proposes replacing a death sentence with life in prison without parole for those found guilty of treason. According to the latest version of the bill, the death penalty would remain in place for crimes committed prior to August 2018.
State leaders to discuss proposed bill to...
BATON ROUGE- At the capitol, state leaders are debating getting rid of the death penalty. Last week a House... More >>
1 year ago Wednesday, April 18 2018 Apr 18, 2018 Wednesday, April 18, 2018 6:20:00 AM CDT April 18, 2018


text:
McDonald's Archways to Opportunity program helps restaurant crew member Bonita Guesman achieve her high school diploma at the impressive age of 63
Home McDonald's Insight
Bonita achieves life-long dreams with McDonald's
Bonita Guesman is a part-time crew member at a McDonald's restaurant in Pittsburgh, Pennsylvania, where she is flourishing following a very different 30-year career as a paralegal.
Bonita is 63 years of age and, thanks to McDonald's, she has finally received her high school diploma. Soon after starting her part-time job at her local McDonald's, Bonita learned from her General Manager and co-workers about the McDonald's comprehensive education program, Archways to Opportunity. She asked whether she could use the program as a route to completing her diploma.
"They said 'you know what, go for it, do it and we'll support you 100%,'" Bonita says. "I have a high school diploma now…one of my bucket list items."
Bonita proves it is never too late to follow your dreams
Bonita received her high school diploma from Career Online High School through Archways to Opportunity and is the program's oldest graduate since its launch in 2015. Excited by her achievements so far, Bonita is now considering studying for a college degree.
"I've been looking into a few trade schools, local community college, some more online classes," Bonita says. "My granddaughter just turned 18 and she's going off to college at the same time as her grandmother is, so it's all worth it, it's a good thing."
Thanking McDonald's for an opportunity which seemed out of reach
Bonita credits McDonald's for providing her with an opportunity that seemed out of reach. She says: "I was encouraged to do more online classes through Archways to Opportunity. The doors are open and it's just phenomenal what I can do now and accomplish. If I can do this I can do anything."
Bonita is also encouraging other women to seize all the opportunities which become available to them.
"It's about going out and educating yourself, being who you want to be no matter what kind of walk of life or diversity," she explains. "It's all about living up to your full potential as a female."
McDonald's offers opportunities for crew workers beyond the restaurant doors
Through exciting schemes such as Archways to Opportunity, there are so many ways for women to develop their skills at McDonald's. Search and apply for a role with this progressive employer today.
McDonald's urges young people to apply for HACER Scholarship
McDonald's expands European apprenticeship offering
McDonald's roadmaps for sustainability and inclusion
McDonald's: investing in future innovation through tech
Prime employer McDonald's invests in future of farming
McDonald's supports Hispanic students via national scholarship
McDonald's expands exciting youth work initiative
McDonald's sees nearly 200,000 applications since announcement
McDonald's supports inclusive and rights-based youth employment
McDonald's colleagues work towards their career dreams
McDonald's shows great support for College Signing Day
McDonald's unveils innovative restaurants of the future
Taylor is on her way becoming a McDonald's Owner/Operator
Pre-employment job readiness and skills training at McDonald's
McDonald's Senior VP Lucy Brady meets customer demands
McDonald's helps restaurant employees further their careers
McDonald's helps its employees get where they want to be
Tweets by McDonalds Corporation


Found a bug? Miss something? Want to leave a comment about this site?
Then this is the forum to post in.
No phpBB Support in this Forum! If you want support for your forum, go here.
Shouldn't MOD team be changed to extensions team?
Now the name phpBB Modders you may have something there.
I don't think Modders stands for Moderators.?
The MOD team rank image has a PHP icon on it. I don't think that phpbbmodders stands for moderators. Mods can stand for moderators, but i think it stands for Modifications. I think that phpbbmodders sounds better than phpbbextenders.


text:
Launching ARCH (Action-Research Collective for Hospitality)
An initiative of Metrolab Brussels, ARCH is a collective of scholars and practitioners (sociologists, architects, urban designers...) engaged in voluntary action-research work for the advancement of urban hospitality in Brussels.
Metrolab
Following an initial collaboration with Médecins du Monde in the context of the book "Designing Urban Inclusion" devoted to ERDF projects, METROLAB researchers wanted to pursue action research on the qualities of hospitality of urban areas in Brussels, by moving towards the most obvious places with regard to this issue: the Maximilien Park, the Brussels North Station and, more broadly, the Northern Quarter.
Involved in a collaboration with the #Bxlrefugees platform, which welcomes, supplies and hosts hundreds of people every day among the 800 migrants and refugees present in this part of the city, ARCH intends to produce in the coming months observations and proposals concerning the social and humanitarian situation in the North Quarter.
ARCH intends in particular to develop four lines of inquiry:
NORTHERN QUARTER What are the formal and informal areas/places of resource and hospitality for migrant population in the Northern Quarter, and what's the impact of ongoing urban policies and development strategies on them, especially on the Maximilien park ?
HUMANITARIAN HUB What are the qualities of hospitality of the North Station Hub and how can the BXLrefugees platform improve them, through a collective reflection on the the layout of its reception and accommodation areas?
ACCOMMODATIONS How to implement accommodation strategies for the refugee population that would not be limited to mass shelters and to individual hospitality ?
POLICY What are the ongoing social and urban policies in the northern quarter ? How can the expertise currently mobilized in the reflection on the future of the North Quarter, based on a mainly architectural and urbanistic perspective, be opened to the knowledge, skills and commitments of the many actors involved in this humanitarian work and to the knoweldge produced by social inquiry and action research?
To know more about ARCH, watch this video and check out the Youtube channel Arch Brussels:
ARCH is made of :
Groups of researchers involved in urban issues
Metrolab Brussels
Metrolab Brussels is an interdisciplinary and interuniversity (ULB/UCL) laboratory for applied and critical urban research, funded by ERDF-Brussels and based in the Northern Quarter. Drawing from the works of an international Masterclass on the spatial conditions of hospitality in Brussels urban projects organized in January 2017, Metrolab published Designing urban inclusion (2018). This experience of action research on issues in urban inclusion and their vicinity with Maximilien Park led them to initiate a collaboration with the BXLrefugees platform.
Mathieu Berger
Louise Carlier
Marco Ranzato
EPFLausanne, LASUR (Laboratoire de sociologie urbaine)
Laboratory of Urban Sociology (LaSUR) is a research center of the Ecole Polytechnique Fédérale de Lausanne, oriented towards the comprehension of urban experiences within a social science perspective. It focusses on the social conditions that produce and appropriate cities or territories, and confronts urban phenomena through the mobility capacities of its actors. The LaSUR leads a research project on urban (in)hospitalities and the place for the newcomer in precarious situation in european cities, in a partnership with Metrolab.
Marie Trossat
Joan Stavo-Debauge
Luca Pattaroni
KU Leuven, OSA architecture&urbanism, MaHS & MaUSP (Master of Human Settlements and Master of Urbanism and Strategic Planning)
The research group OSA Urbanism & Architecture focuses on Brussels' North Quarter as an exemplary site to study the spatial dimensions of inclusion and exclusion in evolving development conditions. Design research has occurred in the context of Open City (1995-2000), Côté Nord (2017-2018) and North Side Stories 2.0 (2018-2019). OSA is a partner in the EU-funded project "Designing Inclusion" together with the University of Sheffield, Politecnico di Milano, Housing Europe and Architectes Sans Frontières International. Research focused on the capacity of urban practitioners to make a meaningful contribution to the reception of migrants and refugees in urban areas.
Viviana d'Auria
Racha Daher
Claire Bosmans
Collectives of Urban Practitioners involved in research processes
MAMA states maintenance as a way of being and making architecture : maintenance practices are integral part of the designed and built environment that they transform simultaneously. As from March 2019 MAMA has a research in residency at the public agency Brussels Mobility on the maintenance process as a design tool for public space. MAMA is based in Brussels.
Koen Berghmans
431 initiates frameworks for the creation, curation, and research of forms of knowledge production and presentation such as spatial interventions, text, performance and film. 431 is based in Brussels.
Wouter De Raeve
WRKSHP
Wrkshp is a design and experimentation office that focuses on the fields of city, architecture, scenography and design.
Paul Sosson
Brussels.wildlife
BXL.WILDLIFE is a research and experimentation project that focuses on the relationships between the urban environment and its inhabitants (their modes of occupation, displacement, production or destruction), through various events and interventions.
Vincent P. Alexis
Participation in these sub-groups is possible for any student, researcher, or associative/volunteer interested in an inquiry work on these issues.
m.berger@metrolab.brussels
l.carlier@metrolab.brussels


text:
Q: Install4j varfile doesnt' read few variables Installer is installed typically using GUI or console, we need unattended installation capability as well. Running the installer like this (in Linux):
myapp -q -c -varfile myfile.var

Installer installs the software successfully. Problem is it ignores some variables (not all variables). It doesn't read values for zServerPort$Long and zShutdownPort$Long variables and instead applies the default values configured in application.
Varfile is provided below
#install4j response file for Sw 4.6
#Mon Aug 11 19:55:46 PDT 2014
sys.adminRights$Boolean=true
choiceIsLicenseSelected=true
zDBUserName=user
zLaunchDesktopPostInstall$Boolean=false
zDBPassWord=password
sys.languageId=en
sys.installationDir=/opt/mydir
zServerPort$Long=85
zLicenseFilePath=/home/mydir/Desktop/license.lic
zMysqlPath=/usr/bin/mysql
zMysqlCnf=/etc/mysql/my.cnf
zDbPort$Long=3306
choiceInstallDir=/opt/mydir
zShutdownPort$Long=8015

zServerPort, zShutdownPort, choiceInstallDir, zMysqlPath are all installer variables. Reordering the variables didn't work either. Is the problem due to data type being Long ?
Is there a way to pass the values of these two variables zServerPort, zShutdownPort in some other way ?
Other idea am thinking is whether if the installer can know that it is being run in unattended mode and read these variables from command line ?

A: Most likely, the defaults are applied with a code snippet and not through the initial values of form components.
In those code snippets (i.e. in a "Run script" action"), you have to check whether the value is already defined or not. For example:
if (context.getVariable("variableName") != null) {
    context.setVariable("variableName"), 100L);
}

redpajama_set_name: RedPajamaStackExchange


text:
The PorcFest Gun Ban
By David Libertas from Libertas link Mar 24, 2018
I have a modest proposal for the Free State Project's (FSP) upcoming PorcFest: ban guns. It's not uncommon to see people openly carrying pistols there. You might even see the occasional AK-47 strapped to someone's back. To understand why this should be banned, we need to look back to 2016 and also reflect on the 2018 Parkland school shooting.
PorcFest 2016
Free Talk Live shirt and AK-47: PorcFest's idea of kid-friendly.
2016 is the year when the FSP banned Ian Freeman. Ian via his Free Talk Live radio show had been the most important person for promoting the FSP and, other than the "rock stars" with national media attention like Ron Paul, was probably one of the most influential people in spreading the message of liberty in general.
In Ian's case, he expressed the highly controversial opinion that every person mentally matures at a different age, and some young people have the maturity to make their own sexual decisions. And conversely, some adults lack the mental maturity to make their own decisions. He noted that when he was a very young child he had prostituted himself for video games and had no regrets, then used that example to oppose age of consent laws.
This understandably horrified people and was met with outrage by the FSP. They did not want their movement associated with that opinion and did the logical step of ending the partnership where Ian's show promoted the FSP. But they went further: they took the additional step of banning him from setting foot in PorcFest and any other event of theirs.
PorcFest party where children were present.
I get why they did that. We don't want the FSP to look like crazy extremists and weirdos. It's not enough to simply disassociate one's brand from a public radio show. We must also purge any trace of extremism from our organizations. One shocking comment from Ian clearly outweighed the entire lifetime of good he had done, so all of that should be discounted.
This may also be why the FSP has been accused of trying to discourage the occasional partial nudity and agorist sales of alcohol known to have happened at past PorcFests. The goal is to make it family friendly, safe for children. Although the end of Buzz's Big Gay Dance Party was not officially forced by the FSP, it also seems in line with a goal of making PorcFest safe for children.
Kid safe?
Even though attendance has declined, we still stand by the idea that moderating your message to be more acceptable to mainstream society is the way to grow the liberty movement. The Libertarian Party has had enormous success with this strategy as they moved away from anarchists like Harry Browne and now embrace moderate Republicans like anti-gun Bill Weld and also Bob Barr, whose main accomplishments in Congress were supporting the PATRIOT Act, the war on drugs, the Iraq War, and authoring the federal gay marriage ban. This is the future of the Libertarian Party, and it should be the future of the FSP.
2018 Gun Control
Seen at PorcFest. Hide your kids!
That brings us back to guns in 2018. The Parkland school shooting is changing things. Firearms are becoming controversial and less socially accepted. It caused once gun-friendly Florida to pass gun control laws. Companies are doing everything they can to not be associated with the NRA. Dick's sporting goods stopped legally selling long guns to adults under 21 and called for a federal long gun ban for that age group. Most recently Citigroup credit cards announced they will drop companies that legally sell firearms to adults under 21, legally sell bumpstocks, or legally sell standard capacity magazines that hold over 10 rounds.
This should not be a surprise: after all, we have high school kids all over the TV screen begging Congress to protect them from guns. The prohibition on alcohol was an abysmal failure. So is the modern war on drugs, as evidenced by how many people are dying from opioids: if these bans actually made opioids difficult to acquire then there'd be no opioid overdose problem right now. But the gun ban demanded by a few high school teens will be different because it tugs at our emotions!
More powerful than Michael Bloomberg's wealth.
A rise in violent crime in Britain followed their gun ban, and Australia's gun ban has had no effect good or bad on their violent crime. But that's irrelevant. What matters most is that teens are grimacing on TV and demanding action! This outweighs all logic and rationality.
The image of angry high school kids on TV has proven more valuable to the victim disarmament (gun control) movement than Michael Bloomberg's millions of astroturf dollars.
Yes, there are some pro-gun Parkland teens speaking out against gun control, but they don't count because the media buries any coverage of them.
Openly carrying not just handguns but even AK-47s like one sees at PorcFest while children play kickball nearby just alienates the public. It makes the FSP look like a bunch of crazy extremists who are OK with endangering children. Popular opinion agrees an event with guns is not safe for children and the opposite of family friendly. Therefore, the logically consistent thing to achieve the FSP's goal of disassociating from the extreme wing of their movement is obvious: we must ban guns at PorcFest.
Hopefully you recognized that this article is mostly satirical sarcasm, but the one very literal non-sarcastic point here is this: the image of frowning concerned teenagers demanding the government protect them really does outweigh all logic and rationality in the mind of a typical human.
This is a fact liberty lovers must contend with. We know that guns are used to stop crime far more often that to commit crime and that the media ignores these heroic stories. In the exceptional cases when guns were used for horrible crimes the media played it up, but until now nothing happened to breathe life the victim disarmament side. The reason nothing happened is because they didn't have children in front of the TV cameras begging for protection. Now they do, and that changes everything.
Λούντβιχ φον Μίζες: Ένας από τους πατέρες της Αυστριακής Οικονομικής Σχολής
O Λούντβιχ φον Μίζες ήταν ένας μάλλον ευερέθιστος Αυστριακός οικονομολόγος, όμως δεν ήταν η προσωπικότητά του ο λόγος πο… [Read more]
by Perdiris


This book could have been a 5 but the longer I read the more the points dropped.
The Hero: Donovan is very funny at times which is what I did like in parts of the book but... He is suppose to be a Dominant. A man that trains submissive's for other Dom's and seems very quickly to turn into a very neurotic man that obsesses over a stuffed Unicorn. I can see it being a mild joke in the book but this stuffed unicorn is written about so much it's nerve racking to keep reading. He's jealous of it and can't stand it staring at him and thinks it hates him. And this is suppose to be a semi normal person?? When he has a problem with his wife the author has him go over it in his mind page after page.
I don't want to say much more because I am disappointed. I really could have enjoyed this book if it was shortened with less repeats. A lot less craziness over the unicorn "which still makes me a little crazy" Get rid of all the useless overlong explanations an inner dialogue. And most important..the humor that I really started to enjoy from the hero was lost due to him being made seem like he was a weak minded man with one foot away from the looney bin.


China's Ministry of Education unveiled its gift, "The Wall of Great Wisdom," to the University of Macau yesterday, symbolizing the university's effort to promote Chinese traditions, culture, and virtues.
The sculpture bears UM's university motto and represents its goal to produce graduates with "great knowledge and great character," the university informed in a statement.
During a visit to Macau, Chen Baosheng, China's Minister of Education, said that the "Wall of Great Wisdom" also conveys the high expectations of the central government for the university, adding that it represents new requirements for UM members.
Chen also recalled that in 1985, the Ministry of Education gave the "Nine Dragon Wall" to UM as a gift which conveyed the hope for the university's fast development with the support of the local community and the central government.
Meanwhile, UM rector Yonghua Song explained the design of the Wall of Great Wisdom, noting that the inscription of traditional values conveys the expectation that UM will promote fine Chinese traditions and culture.
On the same day, the unveiling ceremony for the Confucius Institute at UM was officiated.
The Confucius Institute at UM has the unique advantage of being located in a multilingual and multicultural society that is a special administrative region to which a special political system applies, UM noted.
The institute will make full use of this advantage to pursue international collaboration, especially with Portuguese-speaking countries, in Chinese language teaching, learning, and teacher training.
It also aims to establish a communication platform to promote such collaboration.


This is the single-seat reconnaissance version of the Fagot and this example is on display at the small museum beside Tomcany airfield.
Czech Air force Hind wearing a replica scheme of Liberator GR Mk. VI "K/PP" flown by No 311 (Czechoslovak) Squadron, RAF Coastal Command during World War II.
In 1994 a local air show was held in a field between Wincrange and Antoniushaff. As there is no airfield the fixed wing aircraft operated out of Luxembourg-Findel airport.


text:
Commoning and Factory Recuperation
Yavor Tarinski
The recuperation of factories does not in itself necessarily indicate steps towards liberation and deepening democratization. To avoid their incorporation into the statist economy or the capitalist market, the recuperated factories should be managed democratically by the communities in which they operate.
For many years now the factory was (and continues to be) among the symbols held most dear by revolutionaries from all kinds of radical political traditions. From the beginning of the industrial revolution up to our days, it occupies the imaginary of social movements worldwide. With crises caused by the instability of capitalism and the centralization of statism, workers sometimes resort to recuperation of their working place. This gives hope, but it also raises certain questions about the relation of factories to the broader society and even nature.
From recuperated factories in Latin America, like the legendary Zanon in Argentina, to European ones like the Greek Vio.Me., workers sometimes respond to the crisis by occupying this symbol of industrialism. These actions are praised by radicals and leftists, but will they contribute to the colourful puzzle of collaborative and direct-democratic entities that can lay the foundations of a non-statist, anti-capitalist future? Or are they destined to remain entrapped in the imaginary of economism?
The limits of "workers control"
If such endeavours remain limited to the notion of "workers control", there is a danger that this will create a gap that only a state apparatus can fill. Often this indicates that the function of workers control would be to prevent the capitalists from organizing to sabotage production, to allow workers to get control over their profits and over the disposition of the product, and to set up a "school" of management for other workers. However such factories remain isolated entities, playing the role of romantic symbols of bygone workerism that needs to be incorporated externally into some larger entity. As history has shown, this task is being undertaken by vanguardist units, like parties, using such recuperations for the purpose of nationalization, thus strengthening "top-down" statism.
An example of this is the Russian revolution and the role of the Bolshevik party. The Bolsheviks, for whom the rebellious population was not ready for life in a stateless society, welcomed the workers control in the economic sphere in order to later incorporate it into the "all-seeing" state apparatus they built. The workers self-management on factory floor was later made an essential part of the Yugoslavian state. A more recent case is Venezuela under Chavez, where many workers resorted to taking control over their factories, just to demand later that they be nationalized, as they were unable to deal with the economic difficulties on their own.
Thus the control of the workers over their working place, although essential, does not in itself necessarily indicate steps towards liberation and deepening democratization. That's why demands and support for workers control over factories can be found even among professional politicians and conventional left-wing parties. This does not mean that we should revoke any support for such endeavours, but we should remember that they are not enough in themselves.
Commoning and recuperation
What can fill the void created by the workers control over the factories, is the paradigm of the commons. It suggests that resources of wide social significance can and should be managed by those affected by and in need of them. Often this implies broad social participation.
Factories on their part, are designed to be highly productive units. Their production reaches large numbers of households and their functioning often causes serious imprint on the natural environment. Thus the operation of factories can be considered as of common interest for the wider community, rather than that of the workers or the capitalists claiming ownership over them.
In this line of thought factoriesshould be managed by the wider social community, whose needs they potentially can satisfy. In this way their incorporation into statist economy or capitalist market could be avoided. This implies that the factories should be operated much like "consumer cooperatives," in which consumers participate in the management of certain enterprises. This does not mean that workers will not organize the working process themselves on the factory floor, but that concerned consumers will be able to have a say and influence matters that concern them.
In practice this implies the creation of two sets of assemblies: of workers' and of consumers' assemblies. The workers' assemblies (one or more, depending on the size and number of operational departments of each and every factory) should be responsible for the direct management of the factory. All staff involved in the production process should have the right to participate equally and directly in the decision-making process concerning their enterprise. This assembly's decisions will have to carry most weight, when deciding on the factory's production, since its members' very livelihood depends on it.
The second assembly type – the consumers one – will involve people from communities that are using the factory's products. Their number should vary according to the population being served. The consumers' assemblies will have mainly consultative character regarding the quality of the production and the quantities needed by each community. In this way industrial units will be producing to satisfy real human needs, publicly deliberated, rather than commercially imposed. However, consumers' assemblies should have certain "veto" rights over practices that could impact the natural environment and thus the health of nearby communities.
Ecological dimensions
The idea of human domination over nature has resulted in the economistic mindset of separation of man's activity from nature's well-being. Thus for many years the pollution of nature was overlooked in the name of unlimited economic growth, while communal environmental concerns were cast as symptoms of "backwardness", "ignorance" and even "selfishness". But our time is proving economism wrong. While contemporary capitalistic economies are constantly growing, human misery and inequality are proportionately rising, and the degradation of nature is threatening the very future of humanity.
The concern for nature should be incorporated in industrial production as well as in economic activity in general, which is responsible for a great deal of the ongoing pollution. By making production units producing for the satisfaction of actual human needs, many of them will no longer be needed. There is no need of a factory for every neighbourhood or even city, at least not in a non-capitalist setting. When producing for profit in an artificially commercial manner, a significant part of the production gets dumped away, because it can't be sold and generate profits, thus being rendered "useless".
By maintaining the amount of factories necessary for the satisfaction of real social needs, rather than using them for expanding the reach of capitalist economics, the paradigm of the commons could intertwine factory recuperation with degrowth. This implies that the factories located in close distance from each other, can coordinate with one another and with the wider local society in redirecting production, for duplication and competition to be avoided. In other words, factories can change what they are producing, if other entities are already producing the same products and are managing to cover the local social demand for it.
In an age of uncertainty and deepening multi-layer crisis, it is surely exciting when people resist oppression by not just destroying, but by creating. Especially when they take over such industrial entities like the factory that has enormous productive capacities. But unlike deterministic approaches which view factory recuperation in itself as progressive and revolutionary, we can see that this is simply not the case. It could also help enforce consumerism, bureaucracy and "workerism" that could take regressive directions.
For the latter scenarios to be avoided, a serious rethinking is needed, that will reconfigure the relations between work andleisure, production and consumption, and ultimately between economics and politics. Thus a seemingly unbridgeable gap could be covered, giving new dimensions to the contemporary struggles against injustice and exploitation.
The Communist Manifesto: Insights and Problems
Municipalization of the Economy
The Commons: Beyond the State and the Market
Is Power Always Bad?
Anarchism, Power, and Government
We are depending on volunteers and contributions. You can help.
Society gets all the criminals it deserves
New Compass, Grenmarsvegen 12, 3912 Porsgrunn, Norway | general@new-compass.net | Bank account: International: PayPal, Norway: 0540.160.3087 | RSS
Development and design: Pixelsyndikatet


text:
Ugandan Coffee Suppliers UK
Mon– Sat 9 AM – 6 PM
info@uag.coffee
Ugandan Coffee UK
About our...
BY UAG® AGRO COMPANY
Coffee makes up 95% of Uganda's yearly national exports, providing a livlihood for an estimated 20% of the population.
Arabica was introduced to Uganda from Ethiopia around 1900, with further varietals introduced throughout the following century from neighbouring Kenya, amongst other origins. Most Arabica is processed with the use of hand pulpers but attempts are under way to upgrade processing through the introduction of eco-friendly integrated pulping systems, that simultaneously remove both pulp and mucilage whilst using only small amounts of water, making them particularly suitable for use by smallholders.
"Coffee makes up 95% of Uganda's yearly national exports"
While Arabica was introduced at the beginning of the 1900's, Robusta coffee is indigenous to the country, and has been a part of Ugandan life for centuries. The variety of wild Robusta coffee still grows today in Uganda's rain forests and is thought to be one of the rarest examples of naturally occurring coffee trees anywhere in the world.
About UA Group Ltd
UA Group Ltd was established in 2014 in Kampala, Uganda. It is involved in export-import of agricultural and related produce from/to East Africa. Its main office and agric ulture processing plant are in Kampala.
We are ready to store in advance in order to ensure any volume even in non-season.
Website by Coffee Importer UK