Home | History | Annotate | Download | only in nilfs
History log of /src/sys/fs/nilfs/nilfs_subr.c
RevisionDateAuthorComments
 1.16  05-Dec-2021  msaitoh s/seach/search/
 1.15  21-Mar-2020  reinoud Fix use-after-free issue!
 1.14  29-Mar-2015  riastradh branches: 1.14.18;
Complete removal of cred argument from bread in nilfs.
 1.13  28-Mar-2015  maxv Remove the 'cred' argument from bread(). Remove a now unused var in
ffs_snapshot.c. Update the man page accordingly.

ok hannken@
 1.12  15-Oct-2014  hannken branches: 1.12.2;
Change nilfs to vcache.
 1.11  15-Oct-2014  hannken Prepare nilfs for vcache:
- Calling getnewvnode() with "mp == NULL" is wrong. Stop attaching a
vnode to system file nodes and change nilfs_bread() to translate
the block address and then uyse the device for the read.
- Move the vnode initialisation to nilfs_get_node() and use
nilfs_get_node_raw() to initialise the nilfs node only.
- Same for nilfs_reclaim() versus nilfs_dispose_node().
- Change nilfs_get_node() to return an unlocked vnode instead of
a nilfs node with locked vnode. Adapt nilfs_lookup() and nilfs_root().
- Don't treat unsupported node types (blk, chr ...) as regular,
return ENXIO instead.
- Fix nilfs_getattr() to mask the mode with ALLPERMS.
- Destroy sync_cv before free.
 1.10  18-Oct-2013  christos remove unused variable warnings
 1.9  20-Dec-2012  hannken branches: 1.9.2;
Change bread() and breadn() to never return a buffer on
error and modify all callers to not brelse() on error.

Welcome to 6.99.16

PR kern/46282 (6.0_BETA crash: msdosfs_bmap -> pcbmap -> bread -> bio_doread)
 1.8  12-Jun-2011  rmind branches: 1.8.2; 1.8.12;
Welcome to 5.99.53! Merge rmind-uvmplock branch:

- Reorganize locking in UVM and provide extra serialisation for pmap(9).
New lock order: [vmpage-owner-lock] -> pmap-lock.

- Simplify locking in some pmap(9) modules by removing P->V locking.

- Use lock object on vmobjlock (and thus vnode_t::v_interlock) to share
the locks amongst UVM objects where necessary (tmpfs, layerfs, unionfs).

- Rewrite and optimise x86 TLB shootdown code, make it simpler and cleaner.
Add TLBSTATS option for x86 to collect statistics about TLB shootdowns.

- Unify /dev/mem et al in MI code and provide required locking (removes
kernel-lock on some ports). Also, avoid cache-aliasing issues.

Thanks to Andrew Doran and Joerg Sonnenberger, as their initial patches
formed the core changes of this branch.
 1.7  11-Aug-2010  pgoyette branches: 1.7.6;
Keep condvar wmesg's within 8-char limit
 1.6  21-Jul-2010  hannken Make holding v_interlock mandatory for callers of vget().

Announced some time ago on tech-kern.
 1.5  24-Jun-2010  reinoud Pullup changes from the write implementation:
- remove unnessisary check that would prevent it from mounting newer nilfs
images. A field has been added in the segment summary.
- store blocks of files on their virtual block number
 1.4  29-Jul-2009  reinoud branches: 1.4.2; 1.4.4; 1.4.6;
Re-do nilfs_load_super_root() and implement crc checking of read in super root
to check for consistency.

Since a new crc-seed is chosen on each new nilfs formatting, older structures
will fail the crc check.
 1.3  29-Jul-2009  reinoud Add debugging text to indicate a super root has been found while searching for
it.
 1.2  28-Jul-2009  reinoud Enhance/fix read support for sparse files.

Extents read in wich there were no mappings at all were defined would error
out and files beginning with a sparse area were erroring out.
 1.1  18-Jul-2009  reinoud branches: 1.1.2;
Import read-only part of the NiLFS (v2) implementation for NetBSD. It has been
tested with a DEBUG+DIAGNOSTIC+LOCKDEBUG kernel. To summerise NiLFS, i'll
repeat my posting to tech-kern here:

NiLFS stands for New implementation of Logging File System; LFS done
right they claim :) It is at version 2 now and is being developed by NTT, the
Japanese telecom company and recently put into the linux source tree. See
http://www.nilfs.org. The on-disc format is not completely frozen and i expect
at least one minor revision to come in time.

The benefits of NiLFS are build-in fine-grained checkpointing, persistent
snapshots, multiple mounts and very large file and media support. Every
checkpoint can be transformed into a snapshot and v.v. It is said to perform
very well on flash media since it is not overwriting pieces apart from a
incidental update of the superblock, but that might change. It is accompanied
by a cleaner to clean up the segments and recover lost space.

My work is not a port of the linux code; its a new implementation. Porting the
code would be more work since its very linux oriented and never written to be
ported outside linux. The goal is to be fully interchangable. The code is non
intrusive to other parts of the kernel. It is also very light-weight.

The current state of the code is read-only access to both clean and dirty
NiLFS partitions. On mounting a dirty partition it rolls forward the log to
the last checkpoint. Full read-write support is however planned!

Just as the linux code, mount_nilfs allows for the `head' to be mounted
read/write and allows multiple read-only snapshots/checkpoint mounts next to
it.

By allowing the RW mount at a different snapshot for read-write it should be
possible eventually to revert back to a previous state; i.e. try to upgrade a
system and being able to revert to the exact state prior to the upgrade.

Compared to other FS's its pretty light-weight, suitable for embedded use and
on flash media. The read-only code is currently 17kb object code on
NetBSD/i386. I doubt the read-write code will surpass the 50 or 60. Compared
this to FFS being 156kb, UDF being 84 kb and NFS being 130kb. Run-time memory
usage is most likely not very different from other uses though maybe a bit
higher than FFS.
 1.1.2.2  23-Jul-2009  jym Sync with HEAD.
 1.1.2.1  18-Jul-2009  jym file nilfs_subr.c was added on branch jym-xensuspend on 2009-07-23 23:32:32 +0000
 1.4.6.4  19-May-2011  rmind Implement sharing of vnode_t::v_interlock amongst vnodes:
- Lock is shared amongst UVM objects using uvm_obj_setlock() or getnewvnode().
- Adjust vnode cache to handle unsharing, add VI_LOCKSHARE flag for that.
- Use sharing in tmpfs and layerfs for underlying object.
- Simplify locking in ubc_fault().
- Sprinkle some asserts.

Discussed with ad@.
 1.4.6.3  05-Mar-2011  rmind sync with head
 1.4.6.2  03-Jul-2010  rmind sync with head
 1.4.6.1  16-Mar-2010  rmind Change struct uvm_object::vmobjlock to be dynamically allocated with
mutex_obj_alloc(). It allows us to share the locks among UVM objects.
 1.4.4.1  17-Aug-2010  uebayasi Sync with HEAD.
 1.4.2.4  09-Oct-2010  yamt sync with head
 1.4.2.3  11-Aug-2010  yamt sync with head.
 1.4.2.2  19-Aug-2009  yamt sync with head.
 1.4.2.1  29-Jul-2009  yamt file nilfs_subr.c was added on branch yamt-nfs-mp on 2009-08-19 18:48:14 +0000
 1.7.6.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.8.12.3  03-Dec-2017  jdolecek update from HEAD
 1.8.12.2  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.8.12.1  25-Feb-2013  tls resync with head
 1.8.2.2  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.8.2.1  23-Jan-2013  yamt sync with head
 1.9.2.1  18-May-2014  rmind sync with head
 1.12.2.1  06-Apr-2015  skrll Sync with HEAD
 1.14.18.1  08-Apr-2020  martin Merge changes from current as of 20200406

RSS XML Feed