summaryrefslogtreecommitdiff
path: root/include/linux/notifier.h
AgeCommit message (Expand)Author
2020-09-01notifier: Fix broken error handling patternPeter Zijlstra
2019-12-04kernel/notifier.c: remove blocking_notifier_chain_cond_register()Xiaoming Ni
2018-11-03include/linux/notifier.h: SRCU: fix ctagsSam Protsenko
2018-05-30kernel/SRCU: provide a static initializerSebastian Andrzej Siewior
2017-11-02License cleanup: add SPDX GPL-2.0 license identifier to files with no licenseGreg Kroah-Hartman
2016-03-01rcu: Make CPU_DYING_IDLE an explicit callThomas Gleixner
2013-04-29include/linux/memory.h: implement register_hotmemory_notifier()Andrew Morton
2011-07-25notifiers: vt: move vt notifiers into vt.hAmerigo Wang
2011-07-25notifiers: pm: move pm notifiers into suspend.hAmerigo Wang
2011-07-25notifiers: sys: move reboot notifiers into reboot.hAmerigo Wang
2011-07-25notifiers: net: move netdevice notifiers into netdevice.hAmerigo Wang
2011-07-25notifiers: cpu: move cpu notifiers into cpu.hAmerigo Wang
2011-05-22net: rename NETDEV_BONDING_DESLAVE to NETDEV_RELEASEAmerigo Wang
2011-05-22netpoll: disable netpoll when enslave a deviceAmerigo Wang
2011-03-31Fix common misspellingsLucas De Marchi
2010-08-19notifiers: __rcu annotationsArnd Bergmann
2010-05-31net: Fix NETDEV_NOTIFY_PEERS to not conflict with NETDEV_BONDING_DESLAVE.David S. Miller
2010-05-31arp_notify: allow drivers to explicitly request a notification event.Ian Campbell
2010-05-27notifier: change notifier_from_errno(0) to return NOTIFY_OKAkinobu Mita
2010-05-06netpoll: add generic support for bridge and bonding devicesWANG Cong
2010-03-21net: rtnetlink: ignore NETDEV_PRE_TYPE_CHANGE in rtnetlink_event()Patrick McHardy
2010-03-18net: rename notifier defines for netdev type changeJiri Pirko
2009-12-01net: NETDEV_UNREGISTER_PERNET -> NETDEV_UNREGISTER_BATCHEric W. Biederman
2009-11-18net: introduce NETDEV_UNREGISTER_PERNETOctavian Purdila
2009-10-05net: introduce NETDEV_POST_INIT notifierJohannes Berg
2009-09-15bonding: remap muticast addresses without using dev_close() and dev_open()Moni Shoua
2009-06-03net: introduce pre-up netdev notifierJohannes Berg
2008-09-08kernel/cpu.c: create a CPU_STARTING cpu_chain notifierManfred Spraul
2008-07-25workqueues: make get_online_cpus() useable for work->func()Oleg Nesterov
2008-06-17net/core: add NETDEV_BONDING_FAILOVER eventOr Gerlitz
2008-04-29ipc: re-enable msgmni automatic recomputing msgmni if set to negativeNadia Derbey
2008-04-28VT notifier extension for accessibilityKarl Dahlke
2008-02-01Hibernation: Add PM_RESTORE_PREPARE and PM_POST_RESTORE notifiers (rev. 2)Alan Stern
2008-01-25cpu-hotplug: replace per-subsystem mutexes with get_online_cpus()Gautham R Shenoy
2007-10-19Console events and accessibilitySamuel Thibault
2007-10-19Add kernel/notifier.cAlexey Dobriyan
2007-10-19Console keyboard events and accessibilitySamuel Thibault
2007-07-31[NET]: Allow netdev REGISTER/CHANGENAME events to failHerbert Xu
2007-07-19PM: introduce hibernation and suspend notifiersRafael J. Wysocki
2007-07-16HOTPLUG: Add CPU_DYING notifierAvi Kivity
2007-05-09Add suspend-related notifications for CPU hotplugRafael J. Wysocki
2007-05-09Define and use new events,CPU_LOCK_ACQUIRE and CPU_LOCK_RELEASEGautham R Shenoy
2007-05-09Extend notifier_call_chain to count nr_calls madeGautham R Shenoy
2006-10-04[PATCH] Add SRCU-based notifier chainsAlan Stern
2006-07-03[PATCH] lockdep: locking init debugging improvementIngo Molnar
2006-03-27[PATCH] Notifier chain update: API changesAlan Stern
2005-05-29[BRIDGE]: features change notificationStephen Hemminger
2005-04-16Linux-2.6.12-rc2Linus Torvalds
neither of them because it never sets 's_dirt' to one which means the VFS never calls its '->write_super()' handler. Thus, remove both. Note, I am trying to remove both 's_dirt' and 'write_super()' from VFS altogether once all users are gone. Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com> Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> 2012-05-21exofs: Add SYSFS info for autologin/pNFS exportSachin Bhamare Introduce sysfs infrastructure for exofs cluster filesystem. Each OSD target shows up as below in the sysfs hierarchy: /sys/fs/exofs/<osdname>_<partition_id>/devX Where <osdname>_<partition_id> is the unique identification of a Superblock. Where devX: 0 <= X < device_table_size. They are ordered in device-table order as specified to the mkfs.exofs command Each OSD device devX has following attributes : osdname - ReadOnly systemid - ReadOnly uri - Read/Write It is up to user-mode to update devX/uri for support of autologin. These sysfs information are used both for autologin as well as support for exporting exofs via a pNFSD server in user-mode. (.eg NFS-Ganesha) Signed-off-by: Sachin Bhamare <sbhamare@panasas.com> Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> 2012-05-20exofs: Fix CRASH on very early IO errors.Boaz Harrosh If at exofs_fill_super() we had an early termination do to any error, like an IO error while reading the super-block. We would crash inside exofs_free_sbi(). This is because sbi->oc.numdevs was set to 1, before we actually have a device table at all. Fix it by moving the sbi->oc.numdevs = 1 to after the allocation of the device table. Reported-by: Johannes Schild <JSchild@gmx.de> Stable: This is a bug since v3.2.0 CC: Stable Tree <stable@kernel.org> Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> 2012-03-28Merge branch 'for-linus' of git://git.open-osd.org/linux-open-osdLinus Torvalds Pull trivial exofs changes from Boaz Harrosh: "Just nothingness really. The big exofs changes are reserved for the next merge window." * 'for-linus' of git://git.open-osd.org/linux-open-osd: exofs: Cap on the memcpy() size exofs: (trivial) Fix typo in super.c exofs: fix endian conversion in exofs_sync_fs() 2012-03-20switch open-coded instances of d_make_root() to new helperAl Viro Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> 2012-03-20vfs: check i_nlink limits in vfs_{mkdir,rename_dir,link}Al Viro New field of struct super_block - ->s_max_links. Maximal allowed value of ->i_nlink or 0; in the latter case all checks still need to be done in ->link/->mkdir/->rename instances. Note that this limit applies both to directoris and to non-directories. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> 2012-03-19exofs: Cap on the memcpy() sizeDan Carpenter This data comes from the device, so probably it's fairly trustworthy but it makes the static checkers happy if we check it. [Boaz] the system_id_len is zero, if not present, or always OSD_SYSTEMID_LEN. So always copy OSD_SYSTEMID_LEN bytes. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> 2012-03-19exofs: (trivial) Fix typo in super.cMasanari Iida Correct spelling "faild" to "failed" in fs/exofs/super.c Signed-off-by: Masanari Iida <standby24x7@gmail.com> Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> 2012-03-19exofs: fix endian conversion in exofs_sync_fs()Dan Carpenter fscb->s_numfiles is an __le64 field so we need to use cpu_to_le64() to get a little endian 64 bit on big endian systems. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> 2012-01-08exofs: oops after late failure in mountAl Viro We have already set ->s_root, so ->put_super() is going to be called. Freeing ->s_fs_info is a bloody bad idea when it's going to be dereferenced very shortly... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> 2012-01-03vfs: fix the stupidity with i_dentry in inode destructorsAl Viro Seeing that just about every destructor got that INIT_LIST_HEAD() copied into it, there is no point whatsoever keeping this INIT_LIST_HEAD in inode_init_once(); the cost of taking it into inode_init_always() will be negligible for pipes and sockets and negative for everything else. Not to mention the removal of boilerplate code from ->destroy_inode() instances... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> 2011-10-31fs: add module.h to files that were implicitly using itPaul Gortmaker Some files were using the complete module.h infrastructure without actually including the header at all. Fix them up in advance so once the implicit presence is removed, we won't get failures like this: CC [M] fs/nfsd/nfssvc.o fs/nfsd/nfssvc.c: In function 'nfsd_create_serv': fs/nfsd/nfssvc.c:335: error: 'THIS_MODULE' undeclared (first use in this function) fs/nfsd/nfssvc.c:335: error: (Each undeclared identifier is reported only once fs/nfsd/nfssvc.c:335: error: for each function it appears in.) fs/nfsd/nfssvc.c: In function 'nfsd': fs/nfsd/nfssvc.c:555: error: implicit declaration of function 'module_put_and_exit' make[3]: *** [fs/nfsd/nfssvc.o] Error 1 Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> 2011-10-14ore/exofs: Define new ore_verify_layoutBoaz Harrosh All users of the ore will need to check if current code supports the given layout. For example RAID5/6 is not currently supported. So move all the checks from exofs/super.c to a new ore_verify_layout() to be used by ore users. Note that any new layout should be passed through the ore_verify_layout() because the ore engine will prepare and verify some internal members of ore_layout, and assumes it's called. Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> 2011-10-04ore/exofs: Change the type of the devices array (API change)Boaz Harrosh In the pNFS obj-LD the device table at the layout level needs to point to a device_cache node, where it is possible and likely that many layouts will point to the same device-nodes. In Exofs we have a more orderly structure where we have a single array of devices that repeats twice for a round-robin view of the device table This patch moves to a model that can be used by the pNFS obj-LD where struct ore_components holds an array of ore_dev-pointers. (ore_dev is newly defined and contains a struct osd_dev *od member) Each pointer in the array of pointers will point to a bigger user-defined dev_struct. That can be accessed by use of the container_of macro. In Exofs an __alloc_dev_table() function allocates the ore_dev-pointers array as well as an exofs_dev array, in one allocation and does the addresses dance to set everything pointing correctly. It still keeps the double allocation trick for the inodes round-robin view of the table. The device table is always allocated dynamically, also for the single device case. So it is unconditionally freed at umount. Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> 2011-10-03exofs: Remove unused data_map member from exofs_sb_infoBoaz Harrosh The struct pnfs_osd_data_map data_map member of exofs_sb_info was never used after mount. In fact all it's members were duplicated by the ore_layout structure. So just remove the duplicated information. Also removed some stupid, but perfectly supported, restrictions on layout parameters. The case where num_devices is not divisible by mirror_count+1 is perfectly fine since the rotating device view will eventually use all the devices it can get. Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> Signed-off-by: Benny Halevy <bhalevy@tonian.com> 2011-10-03exofs: Rename struct ore_components comps => ocBoaz Harrosh ore_components already has a comps member so this leads to things like comps->comps which is annoying. the name oc was already used in new code. So rename all old usage of ore_components comps => ore_components oc. Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> 2011-10-03exofs/super.c: local functions should be staticH Hartley Sweeten This quiets the following sparse noise: warning: symbol 'exofs_sync_fs' was not declared. Should it be static? warning: symbol 'exofs_free_sbi' was not declared. Should it be static? warning: symbol 'exofs_get_parent' was not declared. Should it be static? Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> 2011-08-06exofs: Rename raid engine from exofs/ios.c => oreBoaz Harrosh ORE stands for "Objects Raid Engine" This patch is a mechanical rename of everything that was in ios.c and its API declaration to an ore.c and an osd_ore.h header. The ore engine will later be used by the pnfs objects layout driver. * File ios.c => ore.c * Declaration of types and API are moved from exofs.h to a new osd_ore.h * All used types are prefixed by ore_ from their exofs_ name. * Shift includes from exofs.h to osd_ore.h so osd_ore.h is independent, include it from exofs.h. Other than a pure rename there are no other changes. Next patch will move the ore into it's own module and will export the API to be used by exofs and later the layout driver Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> 2011-08-06exofs: ios: Move to a per inode components & device-tableBoaz Harrosh Exofs raid engine was saving on memory space by having a single layout-info, single pid, and a single device-table, global to the filesystem. Then passing a credential and object_id info at the io_state level, private for each inode. It would also devise this contraption of rotating the device table view for each inode->ino to spread out the device usage. This is not compatible with the pnfs-objects standard, demanding that each inode can have it's own layout-info, device-table, and each object component it's own pid, oid and creds. So: Bring exofs raid engine to be usable for generic pnfs-objects use by: * Define an exofs_comp structure that holds obj_id and credential info. * Break up exofs_layout struct to an exofs_components structure that holds a possible array of exofs_comp and the array of devices + the size of the arrays. * Add a "comps" parameter to get_io_state() that specifies the ids creds and device array to use for each IO. This enables to keep the layout global, but the device-table view, creds and IDs at the inode level. It only adds two 64bit to each inode, since some of these members already existed in another form. * ios raid engine now access layout-info and comps-info through the passed pointers. Everything is pre-prepared by caller for generic access of these structures and arrays. At the exofs Level: * Super block holds an exofs_components struct that holds the device array, previously in layout. The devices there are in device-table order. The device-array is twice bigger and repeats the device-table twice so now each inode's device array can point to a random device and have a round-robin view of the table, making it compatible to previous exofs versions. * Each inode has an exofs_components struct that is initialized at load time, with it's own view of the device table IDs and creds. When doing IO this gets passed to the io_state together with the layout. While preforming this change. Bugs where found where credentials with the wrong IDs where used to access the different SB objects (super.c). As well as some dead code. It was never noticed because the target we use does not check the credentials. Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> 2011-08-06exofs: Move exofs specific osd operations out of ios.cBoaz Harrosh ios.c will be moving to an external library, for use by the objects-layout-driver. Remove from it some exofs specific functions. Also g_attr_logical_length is used both by inode.c and ios.c move definition to the later, to keep it independent Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> 2011-08-04exofs: Small cleanup of exofs_fill_superBoaz Harrosh Small cleanup that unifies duplicated code used in both the error and success cases Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> 2011-08-04exofs: BUG: Avoid sbi reallocBoaz Harrosh Since the beginning we realloced the sbi structure when a bigger then one device table was specified. (I know that was really stupid). Then much later when "register bdi" was added (By Jens) it was registering the pointer to sbi->bdi before the realloc. We never saw this problem because up till now the realloc did not do anything since the device table was small enough to fit in the original allocation. But once we starting testing with large device tables (Bigger then 28) we noticed the crash of writeback operating on a deallocated pointer. * Avoid the all mess by allocating the device-table as a second array and get rid of the variable-sized structure and the rest of this mess. * Take the chance to clean near by structures and comments. * Add a needed dprint on startup to indicate the loaded layout. * Also move the bdi registration to the very end because it will only fail in a low memory, which will probably fail before hand. There are many more likely causes to not load before that. This way the error handling is made simpler. (Just doing this would be enough to fix the BUG) Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> 2011-07-17fix exofs ->get_parent()Al Viro NULL is not a possible return value for that method, TYVM... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> 2011-03-15exofs: deprecate the commands pending counterBoaz Harrosh One leftover from the days of IBM's original code, is an SB counter that counts in-flight asynchronous commands. And a piece of code that waits for the counter to reach zero at unmount. I guess it might have been needed then, cause of some reference missing or something. I'm not removing it yet but am putting a warning message if ever this counter triggers at unmount. If I'll never see it triggers or reported I'll remove the counter for good. (I had this print as a debug output for a long time and never had it trigger) Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> 2011-03-15exofs: Write sbi->s_nextid as part of the Create commandBoaz Harrosh Before when creating a new inode, we'd set the sb->s_dirt flag, and sometime later the system would write out s_nextid as part of the sb_info. Also on inode sync we would force the sb sync as well. Define the s_nextid as a new partition attribute and set it every time we create a new object. At mount we read it from it's new place. We now never set sb->s_dirt anywhere in exofs. write_super is actually never called. The call to exofs_write_super from exofs_put_super is also removed because the VFS always calls ->sync_fs before calling ->put_super twice. To stay backward-and-forward compatible we also write the old s_nextid in the super_block object at unmount, and support zero length attribute on mount. This also fixes a BUG where in layouts when group_width was not a divisor of EXOFS_SUPER_ID (0x10000) the s_nextid was not read from the device it was written to. Because of the sliding window layout trick, and because the read was always done from the 0 device but the write was done via the raid engine that might slide the device view. Now we read and write through the raid engine. Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> 2011-03-15exofs: Add option to mount by osdnameBoaz Harrosh If /dev/osd* devices are shuffled because more devices where added, and/or login order has changed. It is hard to mount the FS you want. Add an option to mount by osdname. osdname is any osd-device's osdname as specified to the mkfs.exofs command when formatting the osd-devices. The new mount format is: OPT="osdname=$UUID0,pid=$PID,_netdev" mount -t exofs -o $OPT $DEV_OSD0 $MOUNTDIR if "osdname=" is specified in options above $DEV_OSD0 is ignored and can be empty. Also while at it: Removed some old unused Opt_* enums. Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> 2011-03-15exofs: Override read-ahead to align on stripe_sizebharrosh@panasas.com * Set all inode->i_mapping->backing_dev_info to point to the per super-block sb->s_bdi. * Calculating a read_ahead that is: - preferable 2 stripes long (Future patch will add a mount option to override this) - Minimum 128K aligned up to stripe-size - Caped to maximum-IO-sizes round down to stripe_size. (Max sizes are governed by max bio-size that fits in a page times number-of-devices) CC: Marc Dionne <marc.c.dionne@gmail.com> Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> 2011-03-15exofs: Remove redundant unlikely()Tobias Klauser IS_ERR() already implies unlikely(), so it can be omitted here. Signed-off-by: Tobias Klauser <tklauser@distanz.ch>