diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-06-16 13:06:10 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-06-16 13:06:10 -0700 | 
| commit | e1f5b94fd0c93c3e27ede88b7ab652d086dc960f (patch) | |
| tree | e8de7a132eb88521dd1c19e128eba2d5349bdf4f /fs/fat | |
| parent | 6fd03301d76bc439382710e449f58efbb233df1b (diff) | |
| parent | 1b6ed69f974f6f32c8be0d9a7fc952822eb83b6f (diff) | |
| download | linux-e1f5b94fd0c93c3e27ede88b7ab652d086dc960f.tar.bz2 | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (143 commits)
  USB: xhci depends on PCI.
  USB: xhci: Add Makefile, MAINTAINERS, and Kconfig entries.
  USB: xhci: Respect critical sections.
  USB: xHCI: Fix interrupt moderation.
  USB: xhci: Remove packed attribute from structures.
  usb; xhci: Fix TRB offset calculations.
  USB: xhci: replace if-elseif-else with switch-case
  USB: xhci: Make xhci-mem.c include linux/dmapool.h
  USB: xhci: drop spinlock in xhci_urb_enqueue() error path.
  USB: Change names of SuperSpeed ep companion descriptor structs.
  USB: xhci: Avoid compiler reordering in Link TRB giveback.
  USB: xhci: Clean up xhci_irq() function.
  USB: xhci: Avoid global namespace pollution.
  USB: xhci: Fix Link TRB handoff bit twiddling.
  USB: xhci: Fix register write order.
  USB: xhci: fix some compiler warnings in xhci.h
  USB: xhci: fix lots of compiler warnings.
  USB: xhci: use xhci_handle_event instead of handle_event
  USB: xhci: URB cancellation support.
  USB: xhci: Scatter gather list support for bulk transfers.
  ...
Diffstat (limited to 'fs/fat')
| -rw-r--r-- | fs/fat/dir.c | 29 | ||||
| -rw-r--r-- | fs/fat/namei_vfat.c | 4 | 
2 files changed, 17 insertions, 16 deletions
| diff --git a/fs/fat/dir.c b/fs/fat/dir.c index 3b8e71b412fd..38ff75a0fe22 100644 --- a/fs/fat/dir.c +++ b/fs/fat/dir.c @@ -22,6 +22,19 @@  #include <asm/uaccess.h>  #include "fat.h" +/* + * Maximum buffer size of short name. + * [(MSDOS_NAME + '.') * max one char + nul] + * For msdos style, ['.' (hidden) + MSDOS_NAME + '.' + nul] + */ +#define FAT_MAX_SHORT_SIZE	((MSDOS_NAME + 1) * NLS_MAX_CHARSET_SIZE + 1) +/* + * Maximum buffer size of unicode chars from slots. + * [(max longname slots * 13 (size in a slot) + nul) * sizeof(wchar_t)] + */ +#define FAT_MAX_UNI_CHARS	((MSDOS_SLOTS - 1) * 13 + 1) +#define FAT_MAX_UNI_SIZE	(FAT_MAX_UNI_CHARS * sizeof(wchar_t)) +  static inline loff_t fat_make_i_pos(struct super_block *sb,  				    struct buffer_head *bh,  				    struct msdos_dir_entry *de) @@ -171,7 +184,8 @@ static inline int fat_uni_to_x8(struct msdos_sb_info *sbi, const wchar_t *uni,  				unsigned char *buf, int size)  {  	if (sbi->options.utf8) -		return utf8_wcstombs(buf, uni, size); +		return utf16s_to_utf8s(uni, FAT_MAX_UNI_CHARS, +				UTF16_HOST_ENDIAN, buf, size);  	else  		return uni16_to_x8(buf, uni, size, sbi->options.unicode_xlate,  				   sbi->nls_io); @@ -325,19 +339,6 @@ parse_long:  }  /* - * Maximum buffer size of short name. - * [(MSDOS_NAME + '.') * max one char + nul] - * For msdos style, ['.' (hidden) + MSDOS_NAME + '.' + nul] - */ -#define FAT_MAX_SHORT_SIZE	((MSDOS_NAME + 1) * NLS_MAX_CHARSET_SIZE + 1) -/* - * Maximum buffer size of unicode chars from slots. - * [(max longname slots * 13 (size in a slot) + nul) * sizeof(wchar_t)] - */ -#define FAT_MAX_UNI_CHARS	((MSDOS_SLOTS - 1) * 13 + 1) -#define FAT_MAX_UNI_SIZE	(FAT_MAX_UNI_CHARS * sizeof(wchar_t)) - -/*   * Return values: negative -> error, 0 -> not found, positive -> found,   * value is the total amount of slots, including the shortname entry.   */ diff --git a/fs/fat/namei_vfat.c b/fs/fat/namei_vfat.c index 8d6fdcfd41df..73471b7ecc8c 100644 --- a/fs/fat/namei_vfat.c +++ b/fs/fat/namei_vfat.c @@ -502,11 +502,11 @@ xlate_to_uni(const unsigned char *name, int len, unsigned char *outname,  	if (utf8) {  		int name_len = strlen(name); -		*outlen = utf8_mbstowcs((wchar_t *)outname, name, PATH_MAX); +		*outlen = utf8s_to_utf16s(name, PATH_MAX, (wchar_t *) outname);  		/*  		 * We stripped '.'s before and set len appropriately, -		 * but utf8_mbstowcs doesn't care about len +		 * but utf8s_to_utf16s doesn't care about len  		 */  		*outlen -= (name_len - len); |