04 Jan, 2012

1 commit

  • note re mount options: fmask and dmask are explicitly truncated to 12bit,
    UDF_INVALID_MODE just needs to be guaranteed to differ from any such value.
    And umask is used only in &= with umode_t, so we ignore other bits anyway.

    Signed-off-by: Al Viro

    Al Viro
     

01 Nov, 2011

2 commits


07 Jan, 2011

2 commits


02 Apr, 2009

5 commits

  • We update information in logical volume integrity descriptor after each
    allocation (as LVID contains free space, number of directories and files on
    disk etc.). If the filesystem is on some phase change media, this leads to its
    quick degradation as such media is able to handle only 10000 overwrites or so.
    We solve the problem by writing new information into LVID only on umount,
    remount-ro and sync. This solves the problem at the price of longer media
    inconsistency (previously media became consistent after pdflush flushed dirty
    LVID buffer) but that should be acceptable.

    Report by and patch written in cooperation with
    Rich Coe .

    Signed-off-by: Jan Kara

    Jan Kara
     
  • Anchor block can be located at several places on the medium. Two of the
    locations are relative to media end which is problematic to detect. Also
    some drives report some block as last but are not able to read it or any
    block nearby before it. So let's first try block 256 and if it is all fine,
    don't look at other possible locations of anchor blocks to avoid IO errors.
    This change required a larger reorganization of code but the new code is
    hopefully more readable and definitely shorter.

    Signed-off-by: Jan Kara

    Jan Kara
     
  • This patch makes the UDF FS driver use the hardware sector size as the
    default logical block size, which is required by the UDF specifications.
    While the previous default of 2048 bytes was correct for optical disks,
    it was not for hard disks or USB storage devices, and made it impossible
    to use such a device with the default mount options. (The Linux mkudffs
    tool uses a default block size of 2048 bytes even on devices with
    smaller hardware sectors, so this bug is unlikely to be noticed unless
    UDF-formatted USB storage devices are exchanged with other OSs.)

    To avoid regressions for people who use loopback optical disk images or
    who used the (sometimes wrong) defaults of mkudffs, we also try with
    a block size of 2048 bytes if no anchor was found with the hardware
    sector size.

    Signed-off-by: Clemens Ladisch
    Signed-off-by: Jan Kara

    Clemens Ladisch
     
  • On x86 (and several other archs) mode_t is defined as "unsigned short"
    and comparing unsigned shorts to negative ints is broken (because short
    is promoted to int and then compared). Fix it.

    Reported-and-tested-by: Laurent Riffard
    Signed-off-by: Marcin Slusarz
    Signed-off-by: Jan Kara

    Marcin Slusarz
     
  • "dmode" allows overriding permissions of directories and
    "mode" allows overriding permissions of files.

    Signed-off-by: Marcin Slusarz
    Cc: Jan Kara
    Signed-off-by: Jan Kara

    Marcin Slusarz
     

17 Apr, 2008

3 commits

  • This patch implements parsing of metadata partitions and reading of Metadata
    File thus allowing to read UDF 2.50 media. Error resilience is implemented
    through accessing the Metadata Mirror File in case the data the Metadata File
    cannot be read. The patch is based on the original patch by Sebastian Manciulea
    and Mircea Fedoreanu .

    Signed-off-by: Sebastian Manciulea
    Signed-off-by: Mircea Fedoreanu
    Signed-off-by: Jan Kara

    Jan Kara
     
  • UDF anchor block detection is complicated by several things - there are several
    places where the anchor point can be, some of them relative to the last
    recorded block which some devices report wrongly. Moreover some devices on some
    media seem to have 7 spare blocks sectors for every 32 blocks (at least as far
    as I understand the old code) so we have to count also with that possibility.

    This patch splits anchor block detection into several functions so that it is
    clearer what we actually try to do. We fix several bugs of the type "for such
    and such media, we fail to check block blah" as a result of the cleanup.

    Signed-off-by: Jan Kara

    Jan Kara
     
  • There's really no reason to keep udf headers in include/linux as they're
    not used by anything but fs/udf/.

    This patch merges most of include/linux/udf_fs_i.h into fs/udf/udf_i.h,
    include/linux/udf_fs_sb.h into fs/udf/udf_sb.h and
    include/linux/udf_fs.h into fs/udf/udfdecl.h.

    The only thing remaining in include/linux/ is a stub of udf_fs_i.h
    defining the four user-visible udf ioctls. It's also moved from
    unifdef-y to headers-y because it can be included unconditionally now.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Jan Kara

    Christoph Hellwig
     

09 Feb, 2008

5 commits

  • Add a .show_options super operation to udf.

    Signed-off-by: Miklos Szeredi
    Acked-by: Cyrill Gorcunov
    Acked-by: Jan Kara
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Miklos Szeredi
     
  • Signed-off-by: Marcin Slusarz
    Cc: Ben Fennema
    Acked-by: Jan Kara
    Cc: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Marcin Slusarz
     
  • convert UDF_SB_ALLOC_BITMAP macro to udf_sb_alloc_bitmap function
    convert UDF_SB_FREE_BITMAP macro to udf_sb_free_bitmap function

    Signed-off-by: Marcin Slusarz
    Cc: Ben Fennema
    Acked-by: Jan Kara
    Cc: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Marcin Slusarz
     
  • - convert UDF_SB_ALLOC_PARTMAPS macro to udf_sb_alloc_partition_maps function
    - convert kmalloc + memset to kcalloc
    - check if kcalloc failed (partially)

    Signed-off-by: Marcin Slusarz
    Cc: Ben Fennema
    Cc: Jan Kara
    Acked-by: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Marcin Slusarz
     
  • remove macros:
    - UDF_SB_PARTMAPS
    - UDF_SB_PARTTYPE
    - UDF_SB_PARTROOT
    - UDF_SB_PARTLEN
    - UDF_SB_PARTVSN
    - UDF_SB_PARTNUM
    - UDF_SB_TYPESPAR
    - UDF_SB_TYPEVIRT
    - UDF_SB_PARTFUNC
    - UDF_SB_PARTFLAGS
    - UDF_SB_VOLIDENT
    - UDF_SB_NUMPARTS
    - UDF_SB_PARTITION
    - UDF_SB_SESSION
    - UDF_SB_ANCHOR
    - UDF_SB_LASTBLOCK
    - UDF_SB_LVIDBH
    - UDF_SB_LVID
    - UDF_SB_UMASK
    - UDF_SB_GID
    - UDF_SB_UID
    - UDF_SB_RECORDTIME
    - UDF_SB_SERIALNUM
    - UDF_SB_UDFREV
    - UDF_SB_FLAGS
    - UDF_SB_VAT
    - UDF_UPDATE_UDFREV
    - UDF_SB_FREE
    and open code them

    convert UDF_SB_LVIDIU macro to udf_sb_lvidiu function

    rename some struct udf_sb_info fields:
    - s_volident to s_volume_ident
    - s_lastblock to s_last_block
    - s_lvidbh to s_lvid_bh
    - s_recordtime to s_record_time
    - s_serialnum to s_serial_number;
    - s_vat to s_vat_inode;

    Signed-off-by: Marcin Slusarz
    Cc: Ben Fennema
    Cc: Jan Kara
    Acked-by: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Marcin Slusarz
     

01 Aug, 2007

1 commit

  • This patch fix weird behaviour of UDF mounting procedure. To get UID
    changed (for now) we have to type

    mount -t udf -o uid=some_user,uid=ignore /dev/device /mnt/moun_point

    and specifying two uid at once is strange a bit. So with the patch we are
    able to mount without additional 'uid=ignore' option. The same for GID
    option is done.

    This patch will not break current mount scheme (with two option).

    Btw this does fix (I hope) the following

    [BUG 6124] mount of UDF fs ignores UID and GID options
    http://bugzilla.kernel.org/show_bug.cgi?id=6124

    Signed-off-by: Cyrill Gorcunov
    Cc: Jan Kara
    Cc: Michael
    Cc: Eric Sandeen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Cyrill Gorcunov
     

22 Jul, 2007

1 commit


20 Jul, 2007

1 commit


09 May, 2007

1 commit

  • Make UDF use get_bh() instead of directly accessing b_count and use
    brelse() instead of udf_release_data() which does just brelse()...

    Signed-off-by: Jan Kara
    Acked-by: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jan Kara
     

09 Mar, 2006

1 commit

  • Fix a bug in udf where it would write uid/gid = 0 to the disk for files
    owned by the id given with the uid=/gid= mount options. It also adds 4 new
    mount options: uid/gid=forget and uid/gid=ignore. Without any options the
    id in core and on disk always match. Giving uid/gid=nnn specifies a
    default ID to be used in core when the on disk ID is -1. uid/gid=ignore
    forces the in core ID to allways be used no matter what the on disk ID is.
    uid/gid=forget forces the on disk ID to always be written out as -1.

    The use of these options allows you to override ownerships on a disk or
    disable ownwership information from being written, allowing the media to be
    used portably between different computers and possibly different users
    without permissions issues that would require root to correct.

    Signed-off-by: Phillip Susi
    Cc: Pekka Enberg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Phillip Susi
     

07 Nov, 2005

1 commit

  • This is the fs/ part of the big kfree cleanup patch.

    Remove pointless checks for NULL prior to calling kfree() in fs/.

    Signed-off-by: Jesper Juhl
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jesper Juhl
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds